如何使用Python輸出一個[斐波那契數列]Fibonacci
斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”。
例子:1、1、2、3、5、8、13、21、34、……
解法1:
100以內的斐波那契數列
x=1
y=1
print(x,end=" ")
print(y,end=" ")
while(True):
z=x+y
x=y
y=z
if(z>100): #當z>100的時候,終止循環
break
print(z,end=" ")
解法2:
#遞歸
def fibo(n):
if n <= 1:
return n
else:
return (fibo(n - 1) + fibo(n - 2))
m = int(input("打印前多少項?"))
if m <= 0:
print("請輸入正整數!")
else:
print("fibo:")
for i in range(1,m):
print(fibo(i))
解法3:
迭代,用遞歸當數據大的時候,會出現效率問題
def fibo(max):
n, a, b = 0, 0, 1
while n < max:
yield b
a, b = b, a + b
n = n + 1 # 退出標識
for n in fibo(5):
print (n)