一例题,看不太懂,高手帮忙!该怎么处理
一例题,看不太懂,高手帮忙!
一例子,谭浩强C程序设计第6章里的,
原题:求Fibonacci数列前40个数,输出结果,每行不超过4个数。
程序如下:
#include"stdio.h"
void main()
{
long int f1,f2;
int i;
f1=1; f2=1;
for(i=1; i<=20; i++)
{
printf("%12Ld %12Ld",f1,f2);
if(i%2==0) printf("\n");
f1=f1+f2;
f2=f2+f1;
}
}
有两处不是太懂:
1,每行输出不超过4个数,为什么不是 if(i%4==0)
2, 后两句 f1=f1+f2 f2=f2+f1 不太理解
烦高手针对以上两个问题帮解答下,越详细越好,谢谢了
------解决方案--------------------
1,因为有2个输出 f1,f2 所以if(i%2==0)会输出f1,f2分别2次 总共4次
2,f1=f1+f2,表示将f1+f2的值赋给f1,后面一个同样道理。
例如数字为1,2,3,5,8,13
此时f1=1,f2=2,那么f1=f1+f2就表示此时f1为前2次得和 即3,f2=f2+f1,则实现2+3=f2的操作,此时f2则成为5,一次进行。。。。。。
一例子,谭浩强C程序设计第6章里的,
原题:求Fibonacci数列前40个数,输出结果,每行不超过4个数。
程序如下:
#include"stdio.h"
void main()
{
long int f1,f2;
int i;
f1=1; f2=1;
for(i=1; i<=20; i++)
{
printf("%12Ld %12Ld",f1,f2);
if(i%2==0) printf("\n");
f1=f1+f2;
f2=f2+f1;
}
}
有两处不是太懂:
1,每行输出不超过4个数,为什么不是 if(i%4==0)
2, 后两句 f1=f1+f2 f2=f2+f1 不太理解
烦高手针对以上两个问题帮解答下,越详细越好,谢谢了
------解决方案--------------------
1,因为有2个输出 f1,f2 所以if(i%2==0)会输出f1,f2分别2次 总共4次
2,f1=f1+f2,表示将f1+f2的值赋给f1,后面一个同样道理。
例如数字为1,2,3,5,8,13
此时f1=1,f2=2,那么f1=f1+f2就表示此时f1为前2次得和 即3,f2=f2+f1,则实现2+3=f2的操作,此时f2则成为5,一次进行。。。。。。