#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @date : 2017-04-25 16:04:19
# @author : xiaoke
import os
'''題目:說有一對可愛的兔子,出生後的第三個月開始,
每一月都會生一對小兔子。當小兔子長到第三個月後,
也會每個月再生一對小小兔子.
要求:假設條件,兔子都不死的情況下,問每個月的兔子總數為多少?
思路:兔子的規律為數列0,1,1,2,3,5,8,13,21......似斐那波契數列的感覺
'''# 第一種採用迭代的方式實現
deffunc
(num):
numlist = [0, 1]
for i in range(num - 2):
return numlist
mouth = int(input("親!請輸入月份:"))
f = func(mouth)
# f[len(f)-1]*2,計算出列表中最後一位數值,乘以2的原因是兔子都是成對計算的
print("第%d個月的兔子數量是:%d" % (mouth, f[len(f) - 1] * 2))
# 結果是:
# 親!請輸入月份:9
# 第9個月的兔子數量是:42
# 第二種採用遞迴的方式實現
deffunc
(num):
if num == 0:
result = 0
elif num == 1:
result = 1
else:
result = func(num - 2) + func(num - 1)
return result
mouth = int(input("親!請輸入月份:"))
n = 0
while n < mouth:
print("第%d個月的兔子總數是:%d" % (n + 1, func(n) * 2))
n += 1
# 結果是:
# 親!請輸入月份:9
# 第1個月的兔子總數是:0
# 第2個月的兔子總數是:2
# 第3個月的兔子總數是:2
# 第4個月的兔子總數是:4
# 第5個月的兔子總數是:6
# 第6個月的兔子總數是:10
# 第7個月的兔子總數是:16
# 第8個月的兔子總數是:26
# 第9個月的兔子總數是:42
# 第三種實現方案:最簡單的迴圈計算每項的值
deffunc
(num):
a = 0
b = 1
m = 0
while m < num:
print("第%d個月兔子的總數是:%d" % (m + 1, a * 2))
a, b = b, a + b
m += 1
mouth = int(input("親!請輸入月份:"))
func(mouth)
# 結果如下:
# 親!請輸入月份:9
# 第1個月兔子的總數是:0
# 第2個月兔子的總數是:2
# 第3個月兔子的總數是:2
# 第4個月兔子的總數是:4
# 第5個月兔子的總數是:6
# 第6個月兔子的總數是:10
# 第7個月兔子的總數是:16
# 第8個月兔子的總數是:26
# 第9個月兔子的總數是:42
斐波那契數列 斐波那契數列python實現
斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...
斐波那契數列 python 實現
什麼?找規律找的不錯!其實我想說的是 斐波拉契數列!斐波那契數列 兔子數列.jpg 自從學python,我已經拋棄了計算器。why?因為python比計算器來的快啊!今天要說的斐波那契數列也是,python生成遠比書寫加計算來的快!如果你也想擁有這項牛 zhuang 逼 bi 技能,趕快和我一起學p...
python實現斐波那契數列
方法二 構造遞迴函式def recur fibo n 斐波那契數列指的是這樣乙個數列 0,1,1,2,3,5,8,13,特別指出 第0項是0,第1項是第乙個1。從第三項開始,每一項都等於前兩項之和。核心 fibo 0 1 for ii in range 2 times 2 fibo ii 1 加入了...