斐波那契数列 Python

函数递归调用版本

def fibonacci(n):
    if n==1 or n==2:
        return 1
    else:
        return fibonacci(n-1)+fibonacci(n-2)
n=int(input())
print(fibonacci(n))

但这个能算的不大,算到第38个的时候就要等几秒钟了。

下面这个就能算了。第200个也秒出结果。

递推版本

def fibonacci(n):
    if n==1 or n==2:
        return 1
    else:
        a=b=1
        for i in range(3,n+1):
            s=a+b
            a=b
            b=s
        return s
n=int(input())
print(fibonacci(n))

你可能感兴趣的:(python)