JakobHu 2020-01-03
如何使用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)
动态规划有时被称为递归的相反的技术。动态规划方案通常使用一个数组来建立一张表,用于存放被分解成众多子问题的解。当算法执行完毕,最终的解法将会在这个表中找到。今天我们先从我们最熟的斐波那契数列数列开始。