- /*求Fibonacci数列:1,1,2,3,5,8,13,… 的前40项。
- 本题来自于一个有趣的古典数学问题:有一对兔子,从出生后的第3个月起每个月都生一对兔子。小兔子长到第3个月又生一对兔子。如果生下的所有兔子都能成活,且所有的兔子都不会因年龄大而老死,问每个月的兔子总数为多少?
- 分析:
- ① 此数列的规律是第1、2项都是1,从第3项开始,都是其前两项之和,并且有固定循环次数,因此可以用for循环实现。
- ② 这里用到的是什么算法呢?是迭代算法。迭代算法的基本思想是:不断地用新值取代变量的旧值,或由旧值递推出变量的新值。
- 程序如下:
- */
- #include <stdio.h>
- int 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; /*求出两项*/
- }
- }
复制代码 |
|