方法一:常規解法
defdemo(month):
# 定義變數
a,b分別表示一月和二月的數目
a = 0
# a為第乙個數值
b = 1
# b為第二個數值
# 定義乙個計數器
i = 0
while i < month:
# 列印每次的數值
print(a)
a, b = b, a + b
i += 1
nume = demo(3)
方法二:函式的遞迴
def方法三:利用迭代器,其實和第一種思路相同demo(nume):
# 當nume==1時,
前兩個數值是固定的0,
1if nume == 1:
return
0elif nume == 2:
return
1else:
# 利用函式的遞迴,後乙個等於前兩個之和
return demo(nume - 1) + demo(nume - 2)
# 如果是第五個數
de=demo(3)
# 輸出
print(de)
class rabbit(object):def
__init__(self
, month):
self.month = month
self.new_month = 0
self.a = 0
self.b = 1
def
__iter__(self):
return
self
def
__next__(self):
if self.new_month < self.month:
rea=self.a
self.a,
self.b=self.b,
self.a+self.b
self.new_month+=1
return rea
else:
raise
stopiteration
def
main():
rabbit = rabbit(3)
for nume in rabbit:
print(nume)
if __name__ == '__main__':
main()
斐波那契數列解法
1 概念 在數學上,費波那契數列是以遞迴的方法來定義 f0 0 f1 1 fn fn 1 fn 2 n 2 用文字來說,就是費波那契數列由0和1開始,之後的費波那契係數就是由之前的兩數相加而得出。首幾個費波那契係數是 0,1,1,2,3,5,8,13,21,34,55,89,144,233 oeis...
斐波那契數列的快速解法
求解斐波那契數列,要求時間複雜度為o logn 主要思路是快速冪和矩陣乘法的結合律 利用數學歸納法來證明。快速冪的思想 當n為偶數的時候 an an2 an2 當n為奇數的時候 an a n 1 2 a n 1 2 a那麼fn 的問題就可以換成求矩陣的n次冪了。實現 class solution p...
題目 斐波那契數列。 解法二
程式分析 斐波那契數列 fibonacci sequence 又稱 分割數列,指的是這樣乙個數列 0 1 1 2 3 5 8 13 21 34 數學上的解法是 f0 0 n 0 f1 1 n 1 fn f n 1 f n 2 n 2 我是小白,大神無笑話小弟,只是想記錄下來自己的思路,根據我自己的理...