斐波那契(Fabonacci)序列起源于中世紀(jì)的意大利,問題是這樣給出的:假定每對兔子每個月生出新的一對兔子來,新的每對兔子過兩個月就可以生育。其次,這些兔子都不死,這樣第一個月有一對兔子,第二個月有兩對兔子,第三個月有三對兔子(第一個月的一對兔子又生了一對),第四個月有五對兔子(第二個月已有的兩對兔子又各生了一對),以此類推,問一年共有多少對兔子。
可以把這個問題抽象一下:一般每個月的兔子數(shù)為上個月已有的兔子(因為兔子不死)和上上個月已有兔子新生的兔子(兔子兩個月后就可以生育)之和,也就是說,序列中的某一項等于前兩項之和(雖然一開始不成立)。
于是乎得到了所謂的斐波那契序列,它定義為:

就是說:從第三項起每項都是前兩項的和。
在下面的算法里,把第一項看作了 0,這樣就更符合數(shù)學(xué)上的“斐波那契”數(shù)列了:
1,使用遞歸方法:
return (Fabonacci(n - 1) + Fabonacci(n - 2)); |
2,使用 for 循環(huán),輸出了前 n 個斐波那契數(shù)列:
int _Fabonacci( int n) //輸出前 n 個數(shù) |
printf ( "%10d%10d" , a, b); /*輸出前兩個數(shù)*/ |
printf ( "\n" ); /*每行輸出 5 個*/ |
}