斐波那契(Fabonacci)序列起源于中世纪的意大利,问题是这样给出的:假定每对兔子每个月生出新的一对兔子来,新的每对兔子过两个月就可以生育。其次,这些兔子都不死,这样第一个月有一对兔子,第二个月有两对兔子,第三个月有三对兔子(第一个月的一对兔子又生了一对),第四个月有五对兔子(第二个月已有的两对兔子又各生了一对),以此类推,问一年共有多少对兔子。
可以把这个问题抽象一下:一般每个月的兔子数为上个月已有的兔子(因为兔子不死)和上上个月已有兔子新生的兔子(兔子两个月后就可以生育)之和,也就是说,序列中的某一项等于前两项之和(虽然一开始不成立)。
于是乎得到了所谓的斐波那契序列,它定义为:
就是说:从第三项起每项都是前两项的和。
在下面的算法里,把第一项看作了 0,这样就更符合数学上的“斐波那契”数列了:
1,使用递归方法:
return (Fabonacci(n - 1) + Fabonacci(n - 2)); |
2,使用 for 循环,输出了前 n 个斐波那契数列:
int _Fabonacci( int n) //输出前 n 个数 |
printf ( "%10d%10d" , a, b); /*输出前两个数*/ |
printf ( "\n" ); /*每行输出 5 个*/ |
}