Python学习--斐波那契数列--迭代法和递归法实现

斐波那契数列实现的两种方式

  • 迭代法:

使用迭代法速度快,运算几乎不用等待,例如计算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)

猜你喜欢

转载自blog.csdn.net/g_curry/article/details/81698215