斐波那契数列----C 语言学习
时间:2010-10-18 来源:涅槃的猫
可以把这个问题抽象一下:一般每个月的兔子数为上个月已有的兔子(因为兔子不死)和上上个月已有兔子新生的兔子(兔子两个月后就可以生育)之和,也就是说,序列中的某一项等于前两项之和(虽然一开始不成立)。
于是乎得到了所谓的斐波那契序列,它定义为:
就是说:从第三项起每项都是前两项的和。
在下面的算法里,把第一项看作了 0,这样就更符合数学上的“斐波那契”数列了:
1,使用递归方法:
int Fabonacci(int n)
{
if(n <= 2)
return n - 1;
else
return (Fabonacci(n - 1) + Fabonacci(n - 2));
}
2,使用 for 循环,输出了前 n 个斐波那契数列:
int _Fabonacci(int n)//输出前 n 个数
{
int i, a, b, c;
a = 0;
b = 1;
printf("%10d%10d", a, b);/*输出前两个数*/
for(i = 3; i <= n; i ++)
{
c = a + b;
printf("%10d", c);
if(i % 5 == 0)
printf("\n");/*每行输出 5 个*/
a = b;
b = c;/*项移动*/
}
printf("\n");
} 相关阅读 更多 +











