斐波那契数列实现的两种方式
-
迭代法:
使用迭代法速度快,运算几乎不用等待,例如计算99代,可以瞬间出答案,效率比递归法快,但是程序冗杂。
def fib(n):
n1 = 1
n2 = 1
n3 = 1
if n < 1:
print("输入错误!")
return -1
if n ==1 or n ==2:
return 1
while n-2 > 0:
n3 = n2 + n1
n1 = n2
n2 = n3
n -= 1
return n3
number = int(input("请输入多少代:"))
result = fib(number)
if result != -1:
print("总共有%d对兔子诞生!" % result)
请输入多少代:99
总共有218922995834555169026对兔子诞生!
-
递归法
使用递归法程序简洁易懂,坏处在于运算的效率太低。例如运算到35次以上的时候就需要2秒以上才能出来答案,到99的时候都可以喝个下午茶在回来看结果啦(#^.^#)
def fib(n):
if n < 1:
print("输入错误!")
return -1
if n ==1 or n ==2:
return 1
else:
return fab(n-1) + fab(n-2)
number = int(input("请输入多少代:"))
result = fib(number)
if result != -1:
print("总共有%d对兔子诞生!" % result)