1107
今天我们接触了自从学习C#以后的第一个难点:for循环语句,循环语句不像if else 或者 switch一样一目了然,而且for语句里面涉及了算法的问题,所以更加难以理解与掌握,一开始老师给我们举了高斯计算从1加到100的问题,最后这道题用FOR循环句子写出来如下:
int sum = 0;
for (int i = 1; i <= 100; i+=2) {
sum += i;
}
Console.WriteLine(sum);
虽然只有这么简单两句,但是最困难就是发现其中的算法,这段语句表示,如果i小于等于100的情况下,就一次递加1,sum每次都与I相加再赋值回来,就等于1+2+3+4+...+100(因为i的最大值只能到100),一开始这段代码我也没有看明白,不过经过老师的解释以及后面练习题的训练明白了许多。
下面是两道简单的数学题,通过FOR语句计算出答案:
第一题,有一只猴子和一堆桃,猴子每天吃这一堆桃子的一半,然后扔掉一个,如此往复,到了第七天,只剩一个桃了,问一共有几个桃?
这道题考验的就是算法,从最后只剩一个桃往回退,发现计算的规律是:
设桃子的数量为X,每天猴子桃子的数量是这样递加的:
第七天:X=1;
第六天:X=(X+1)*2
第五天:X=(第六天的X值+1)*2
根据这个规律,用FOR代码就是这样表现的:
int i = 1, z=1 ;//i为天数,z为桃子数
for (i = 1; i < 7; i++) //一共吃了七天
{
z = (z + 1) * 2;
}
Console.WriteLine(z);
}
这样循环到第七天,桃子的数量就算出来了,最后打印的是190。
然后是第二题:
A的年龄比B大两岁,B的年龄比C大两岁,C的年龄比D大两岁,D的年龄比E大两岁,E今年14岁,问A多少岁?
这道题如果口算很简单,如果用循环语句的话,难点在于“大两岁”的这个循环走了多少次,从题目看,一共是循环了四次,算法如下:
int x=14;//E的年龄
for (int i = 1; i <= 4; i++) {
x += 2;
}
Console.WriteLine(x);
最后得出A的年龄是22岁。
FOR语句属于循环语句中的一个难点,尤其对于我这种数学很差的人,的确很费脑筋,所以更要多做一些题来巩固一下。如果有哪位朋友有好的资源的还请分享!