二级C语言填空题:题目计算以下分数序列前18项之和2/1,3/2,5/3,8/5,13/8.......#include <stdio.h>void main(){int i;float sum,a=2,b=1,t;/**/ /**/; sum=0;for (i=1;i<=18;i++){sum+=/**/ /**/;t=a/bt=a;a=a+b;b=/**/ /**/; t}printf("sum=%f\n",sum);getch();}/**/ /**/这个中间是填空的部分,右边是正确答案,而我觉得第二个应该是a/b,第三个应该是a-i,用我这答案也可以运行出来但是运行出来的答案跟题库所给的答案(也就是上面程序右边的正确答案)运行出来的值不一样,用我自己的答案笔试推算例子中前四项都符合就最后一项变成了13/9.。而用题库给的答案推算只有前两项符合例子给的式子,我不太理解为什么,求大神解析下,谢谢
1 回答
Eric_温水之蛙
TA贡献8条经验 获得超3个赞
这题考的是斐波那契数列。数列从第3项开始,每一项都等于前两项之和。
分数的分子和分母使用的是斐波那契数列的数字。
分数的分子是上一项的分子和分母之和,分数的分母是上一项的分子。
根据这个算法,得到的计算公式是正确答案。
sum+=/**/ /**/;t=a/b
这句话为什么会有t?应该是
sum+=a/b
- 1 回答
- 0 关注
- 792 浏览
添加回答
举报
0/150
提交
取消