求斐波那契數列的第n項(思想與實現)

2021-08-20 20:53:10 字數 726 閱讀 1564

大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。

n<=39

首先在這裡先講講這個什麼是斐波那契數列,斐波那契數列的第一項是0,第二項是1

然後從第三項開始每項等於前兩項的和.f(n) = f(n - 1) + f(n - 2)

如f(0) = 0       f(1) = 1      f(2) = f(1) + f(0) = 1        f(3) = f(2) + f(1) = 2 .......

以此類推則是:f(n) = f(n - 1) + f(n - 2)     n >=2;

那麼這個題目需要求這個斐波那契數列的第n項是多少?

這個時候有兩種解題思路:

第一種就是遞迴的思路:而遞迴主要是要找到這個遞迴的出口,此處的出口是n = 0或者n = 1的時候,但是

遞迴有一種非常大的弊端,耗費是時空都很大(求每次的n,和n-1都算了乙個n-2後面的,造成很大的浪費)。

public int fibonacci(int n) 

if(n == 1)

return fibonacci(n - 1) + fibonacci(n - 2);

}

第二種是非遞迴的思路:則是利用迴圈解除遞迴

public int fibonacci(int n) 

}return y;

}

求斐波那契數列的第n項

斐波那契數列的定義如下 f 0 0 f 1 1 f n f n 1 f n 2 n 2 1,1,2,3,5,8,13,21,34,55,89,144,233,377,給出n,求f n 由於結果很大,輸出f n 1000000009的結果即可。input 輸入1個數n 1 n 10 18 output...

求斐波那契數列的第n項

問題描述 斐波那契數列是這樣的乙個數列,1,1,2,3,5,8,即前兩項都是1,後面每一項都是其前面兩項的和。現在要你求出該數列的第n項。解法一 遞迴演算法。很多教科書上都用這個題作為函式遞迴知識點講解的例題,我們可以將每乙個項的求法表達為這樣乙個式子 f n f n 1 f n 2 f 1 1,f...

斐波那契數列第n項

1 斐波那契數列第n項 在斐波那契數列中,fib0 0,fib1 1,fibn fibn 1 fibn 2 n 1 給定整數n,求fibn mod10000。輸入格式 輸入包含多組測試用例。每個測試用例佔一行,包含乙個整數n。當輸入用例n 1時,表示輸入終止,且該用例無需處理。輸出格式 每個測試用例...