題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少
//這是乙個斐波拉契數列問題
解:f(1)=1;
f(2)=1;
f(3)開始生兔子,而且此時生兔子的數目一定是在兩個月前存在的兔子數,上月前出生的兔子此時還不會生兔子,因此我們只需要知道上個月有多少對兔子+前個月有多少對兔子會生兔子=這個月兔子的數目;
因此f(n)=f(n-1)+f(n-2);
用程式如何寫解決方案呢?
public static int calfibonaci(int month)
return sum;
}
面試題9 斐波那契數列
方法一 很容易想到的解法是直接使用遞迴。c include stdafx.h include using namespace std long long fibonacci unsigned int n if n 1 return fibonacci n 1 fibonacci n 2 int tm...
面試題9 斐波那契數列
題目一 寫乙個函式,輸入n,求斐波那契數列的第n項,斐波那契數列的定義如下 0 n 0 f n 1 n 1 f n 1 f n 2 n 1 遞迴 long long fibonacci unsigned int n if n 0 n 1 return n return fibonacci n 1 f...
面試題9 斐波那契數列
面試題9 題目 寫乙個函式,輸入n,求斐波那契數列的第n項。很多教科書中的解法 long long fibonacci solution1 unsigned int n 這是從第n項向前計算的方法,很多計算量實際上是重複的。long long fibonacci solution2 unsigned...