题目描述
斐波那契数列的排列是:1,1,2,3,5,8,13,21,34,55,89,144。在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)。分别用递归和非递归的方式,计算第n个斐波那契数。
实现代码
1、递归方法
def Fib(n): if n==1 or n==2: return 1 else: return Fib(n-1)+Fib(n-2) def main(): a=eval(input("请输入n:")) print("第{}个斐波那契数是{}".format(a,Fib(a))) main()
2、非递归方法
def Fbnq(n): s=[0,1] if n==1: return s[n] for n in range(2,n+1): s.append(s[n-1]+s[n-2]) return s[n] def main(): num=eval(input("要求第几个斐波拉契数:")) print("第{}个斐波拉契数为{}".format(num,Fbnq(num))) main()
运行演示