有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13……用C语言编程求出这个数列的前20项之和。

admin2017-05-05  33

问题 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13……用C语言编程求出这个数列的前20项之和。

选项

答案#inelude<stdio.h> main() { int i,x,y,a; float sum=(); x=2: y=1; for(i=1;i<20;i++) { sum+=(float)(x)/y; a=X: x=x+y; y=a; } printf("%7.5f\n",sum); }

解析 观察分数序列,发现分子是2,3,5……分母是1,2,3,5……实际上都是斐波那契数列的一部分。斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21……这个数列从第三项开始,每一项都等于前两项之和。所以只要给出两个初始值,后面的数字就可以用前面的数的和来表示。这里用x表示分子,y表示分母。用for循环把分数序列前20项加起来,最后打印结果sum+=moat)(x)/y;用了强制类型转换,因为两个int型的数相除,结果也会是int型。
转载请注明原文地址:https://kaotiyun.com/show/AF7v777K
0

最新回复(0)