python斐波那契数列中第n个数的值

514 阅读1分钟

求斐波那契数列中第n个数的值:1,1,2,3,5,8,13,21,34....

方法一:用for循环

n = int(input('请输入要一个整数:'))
n_2 = 0
n_1 = 1
current  = 1
for x in range(2, n+1):
    current = n_2 + n_1
    n_2 = n_1
    n_1 = current
print('第%d个数是%d'%(n, current))


方法二:递归函数

def fab(n):
    if n == 1 or n == 2:
        return 1
    return fab(n-1) + fab(n-2)

print(fab(5))

方法三:生成器

def fib(n):
    a, b = 0, 1
    for _ in range(n):
        a, b = b, a + b
        yield a
        
for val in fib(20):
    print(val)