
#include<stdio.h>麻烦大家帮忙详细解释下此程序。
#include<stdio.h>main(){longf1,f2,f3;inti;f1=f2=1;for(i=3;i<=40;i++){f3=f1+f2;f1=f2;f...
#include<stdio.h>
main()
{ long f1,f2,f3;
int i;
f1=f2=1;
for(i=3;i<=40;i++)
{f3=f1+f2;
f1=f2;
f2=f3;}
printf("the 40th is %ld\n",f3);}
麻烦大家帮忙详细解释下此程序。{f3=f1+f2;
f1=f2;
f2=f3;}
这个看不懂。 展开
main()
{ long f1,f2,f3;
int i;
f1=f2=1;
for(i=3;i<=40;i++)
{f3=f1+f2;
f1=f2;
f2=f3;}
printf("the 40th is %ld\n",f3);}
麻烦大家帮忙详细解释下此程序。{f3=f1+f2;
f1=f2;
f2=f3;}
这个看不懂。 展开
3个回答
展开全部
呃,楼主,是不是一道ACM的题目?你这个没有题目背景不好解释啊。
还有,为什么 i 循环要从i=3开始,需要38次循环的话直接i=0;i<38;i++不就完成了么。
for(i=3;i<=40;i++)
{
f3=f1+f2; //你这里将f3赋值为f1+f2,
f1=f2;
f2=f3; //这里将f3的值赋给f2,
}
它们的具体意义我不清楚,我只能给你解释它们是如何操作的。
首先,f3赋值为f2+f1,即f3=f1+f2;
然后将f2的值赋给f1,即f1=f2;
然后将f3的值赋给f2,然后结束循环。
也就是说,在每一次循环中,f3的值为本次循环开始时的 f2 与 f1 的和,f2 与 f3 的值最后会变成相同的,而f1的值会与上次循环中的f2的值相同。
数据变化的表为:
f1 f2 f3
1 2 2 //第一次循环结束,下面类推。
2 3 3
3 5 5
5 8 8
8 13 13
13 21 21
21 34 34
.......
自己看吧,可能有什么规律,但我没去找。
还有,为什么 i 循环要从i=3开始,需要38次循环的话直接i=0;i<38;i++不就完成了么。
for(i=3;i<=40;i++)
{
f3=f1+f2; //你这里将f3赋值为f1+f2,
f1=f2;
f2=f3; //这里将f3的值赋给f2,
}
它们的具体意义我不清楚,我只能给你解释它们是如何操作的。
首先,f3赋值为f2+f1,即f3=f1+f2;
然后将f2的值赋给f1,即f1=f2;
然后将f3的值赋给f2,然后结束循环。
也就是说,在每一次循环中,f3的值为本次循环开始时的 f2 与 f1 的和,f2 与 f3 的值最后会变成相同的,而f1的值会与上次循环中的f2的值相同。
数据变化的表为:
f1 f2 f3
1 2 2 //第一次循环结束,下面类推。
2 3 3
3 5 5
5 8 8
8 13 13
13 21 21
21 34 34
.......
自己看吧,可能有什么规律,但我没去找。
更多追问追答
追问
不好意思,题目是这样的——————
Fibnacci数列有下列规律:前两个数为1,从第三个数开始,每个数都是其前面两个相邻数的和,求该数列的第40项。
追答
这个函数即是求Fibnacci数列的第四十项的值。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询