⑴ c語言:兔子繁殖問題
兔子的對數,就是Fibonacci數列
#include <stdio.h>
long f(long n)
{
if(n<3) return 1;
else return f(n-2)+f(n-1);
}
void main()
{
printf("一年後,有兔子%ld對.\n", f(12));
getch();
}
---------------------------------------------------------
1 1 2 3 5 8 13 21 34 55 89 ...
⑵ 經典演算法題之兔子問題
可以這樣思考:第一個月後即第二個月時,1對兔子變成了兩對兔子,其中一對是它本身,另一對是它生下的幼兔. 第三個月時兩對兔子變成了三對,其中一對是最初的一對,另一對是它剛生下來的幼兔,第三對是幼兔長成的大兔子. 第四個月時,三對兔子變成了五對,第五個月時,五對兔子變成了八對······這組數從三個數開始,每個數是兩個數的和,按此方法推算,第六個月是13對兔子,第七個月是21對兔子……,裴波那契得到一個數列,人們將這個數列前面加上一項1,成為「裴波那契數列」,即:1,1,2,3,5,8,13…數列用﹛an﹜表示有a1=a2=1,a(n+1)=an=a(n-1) (n≧2)。通項公式為:(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}。
斐波納契數列還暗含著許多有趣的數字規律,如從第3個數開始每隔兩個必是2的倍數,從第4個數開始每隔3個必是3的倍數,從第5個數開始每隔4個必是5的倍數……另外,這個數列最具有和諧之美的地方是,越往後,相鄰兩項的比值會無限趨向於黃金比0.61803……即[5^(1/2)-1]/2。