劍指 Offer 10 I 斐波那契數列

2021-10-08 19:37:22 字數 1031 閱讀 5165

題目鏈結

題目描述:

1.寫乙個函式,輸入 n ,求斐波那契(fibonacci)數列的第 n 項。斐波那契數列的定義如下:

f(0) = 0, f(1) = 1

f(n) = f(n - 1) + f(n - 2), 其中 n > 1.

斐波那契數列由 0 和 1 開始,之後的斐波那契數就是由之前的兩數相加而得出。

答案需要取模 1e9+7(1000000007),如計算初始結果為:1000000008,請返回 1。

2.乙隻青蛙一次可以跳上1級台階,也可以跳上2級台階。求該青蛙跳上乙個 n 級的台階總共有多少種跳法。(相當於斐波那契,第n級台階等於n-1的方法加上n-2的方法)

示例 1:

輸入:n = 2

輸出:1

示例 2:

輸入:n = 5

輸出:5

解題思路:

1.遞迴會超時

2.採用迴圈

class solution:

def fib(self, n: int) -> int:

#遞迴# if n==0:

# return 0

# elif n==1:

# return 1

# else:

# return int((self.fib(n-1)+self.fib(n-2))%(1e9+7))

if n==0 or n==1:return n

# a=[0]*(n+1)

# a[0],a[1]=0,1

# for i in range(2,n+1):

# a[i]=int((a[i-1]+a[i-2])%(1e9+7))

# return a[-1]

f0,f1=1,0

fn=0

for i in range(2,n+1):

fn=int((f0+f1)%(1e9+7))

f1=f0

f0=fn

return fn

劍指 Offer 10 I 斐波那契數列

劍指 offer 10 i.斐波那契數列 寫乙個函式,輸入 n 求斐波那契 fibonacci 數列的第 n 項。斐波那契數列的定義如下 f 0 0,f 1 1 f n f n 1 f n 2 其中 n 1.斐波那契數列由 0 和 1 開始,之後的斐波那契數就是由之前的兩數相加而得出。答案需要取模 ...

劍指 Offer 10 I 斐波那契數列

題目描述 寫乙個函式,輸入 n 求斐波那契 fibonacci 數列的第 n 項。斐波那契數列的定義如下 f 0 0,f 1 1,f n f n 1 f n 2 其中 n 1.斐波那契數列由 0 和 1 開始,之後的斐波那契數就是由之前的兩數相加而得出。答案需要取模 1e9 7 1000000007...

劍指 Offer 10 I 斐波那契數列

寫乙個函式,輸入 n 求斐波那契 fibonacci 數列的第 n 項。斐波那契數列的定義如下 f 0 0,f 1 1 f n f n 1 f n 2 其中 n 1.斐波那契數列由 0 和 1 開始,之後的斐波那契數就是由之前的兩數相加而得出。答案需要取模 1e9 7 1000000007 如計算初...