Python中斐波那契數列實現

2021-07-31 04:00:42 字數 1796 閱讀 8029

#!/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 加入了...