最近在看递归,看到一个递归的经典问题,如何打印斐波那契数列,下面讲解其原理及python3实现。
- 问题:
打印Fibonacci sequence。 - 原理:
Fibonacci数列很好递归,除了第一第二项,其他项都是前两项的合。数学表述如下:
F(1)=1,
F(2)=1,
F(n)=F(n-1)+F(n-2)(n>=3,n∈N*) - python实现:
def fibonacci(n):
if n == 1 or n == 2:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
n = int(input("请输入要打印多少项:"))
if n < 1:
print("输入有误!")
else:
for i in range(1,n+1):
print(fibonacci(i),end=' ')
- 测试结果
请输入要打印多少项:15
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610