题目
- 编写函数,实现斐波那契数列的计算,并计算fibonacci(n),n ≥ 2
概念
- OK,我们先了解一下什么是斐波那契数列。
- 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称“兔子数列”,其数值为:1、1、2、3、5、8、13、21、34……在数学上,这一数列以如下递推的方法定义:F(0)=1,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)
思路
- 观察了一下概念,数列直接采用递归更简便一些,那就开整
代码
def fibonaaci(n):
if n < 1 : #数列数量小于1
return 0 #返回0
if n == 1 or n == 2 : #数量为1或者2
return 1 #返回1
return fibonaaci(n-1) + fibonaaci(n-2) #递归计算数列的第n个数
if __name__ == "__main__":
while True: #循环直到用户输入整数
try:
num_f = int(input("Please enter the number of Fibonacci sequence:"))#提示用户输入
except ValueError as err: #捕捉到异常
print("Input Error, the number should greater than 0!") #提示用户输入错误
else: #输入是整数
if num_f > 0: #数列数量是否大于0
print("Fibonacci sequence: ",end="") #打印数列开头信息
for fib in range(1,num_f + 1): #遍历数列数量
print(fibonaaci(fib),end=" ") #打印数列的第i个数的值
break #退出循环
else: #数列数量小于等于0
print("Input Error, the number should greater than 0!") #打印提示信息