【Python練習題 007】 有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少? 這題反正我自己是算不出來。後來搜索了網上,說是經典的“斐波納契數列”。於是我自己排畫了一下(如下圖,小寫表示小兔子,大寫表示大兔子): ...
【Python練習題 007】 有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?
-------------------------------------------------------------------
這題反正我自己是算不出來。後來搜索了網上,說是經典的“斐波納契數列”。於是我自己排畫了一下(如下圖,小寫表示小兔子,大寫表示大兔子):
a
a
A b
A b c
A B c d e
A B C d e f g h
A B C D E f g h i j k l m
……
數一數,可不就是 1, 1, 2, 3, 5, 8, 13 的規律(從第3個數字開始,每個數字都是前2個數字之和)嗎?好吧,這兔子我真是數不清楚,但生成“斐波納契數列”我還是會的。代碼如下:
a, b = 0, 1 for i in range(1, 13): print('第%s個月:%s只兔子' % (i,b)) a, b = b, a+b
就這4行代碼,就能生成 12 個月的兔子數量。基本邏輯是:a、b 初始化值為 0、1,從 b 開始列印,之後把 b 賦值給 a、把 a+b 賦值給 b(表示後一個數字是前2個數字之和)。輸出結果如下:
第1個月:1只兔子
第2個月:1只兔子
第3個月:2只兔子
第4個月:3只兔子
第5個月:5只兔子
第6個月:8只兔子
第7個月:13只兔子
第8個月:21只兔子
第9個月:34只兔子
第10個月:55只兔子
第11個月:89只兔子
第12個月:144只兔子
++++++++++++++++++++++++++++++++++++++