当前位置:首页 >> 脚本专栏

使用python求斐波那契数列中第n个数的值示例代码

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)

求斐波那契数列中第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)

总结