非遞迴的斐波那契數列(Python)

2021-08-21 04:46:01 字數 523 閱讀 8241

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

n<=39

思路:斐波那契數列最典型最簡單的方法當然是遞迴了,但是如果面試碰到這道題用遞迴做,offer是拿不到的。我們知道斐波那契數列永遠只跟上兩個數有關,那麼很自然的想到,我就保留上兩個的數值就好。

**:

class solution:

def fibonacci(self, n):

if n == 0:

return 0

elif n == 1:

return 1

else:

last,last_last = 1,0

for i in range(n//2):

last_last = last+last_last

last = last+last_last

return last if n%2 == 1 else last_last

#單數返回last,雙數返回last_last

斐波那契數列 遞迴與非遞迴

首先來說下遞迴,遞迴的思想是大事化小。斐波那契數列 1,1,2,3,5,8,13,21.設f n 是第n個斐波那契數,當n 2,斐波那契數都為1 當n 2,那麼第f n 個斐波那契數就等於前兩個斐波那契數之和。遞迴的 實現 includeint fbnq int n int main 輸入10,得到...

數學 斐波那契數列 遞迴 非遞迴

include pch.h include using std cout using std cin typedef long long ll int fib int n ll fib notrec int n int main return 0 題目給的f 0 1,就這麼寫了 斐波那契第n項 時間...

斐波那契數列的非遞迴實現

有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子對數為多少?兔子的規律為數列1,1,2,3,5,8,13,21 屬於斐波那契數列問題。該數列有乙個規律 f 0 1 f 1 1,f n f n 1 f n 2 n 2 由此可以用遞...