Python_斐波那契数列

背景:

  小伙伴去面试,考题:python计算"斐波那契数列",不少于2种写法。

  当然,小编第一感觉,就是坑。逗比考官,没办法,谁让发到群里让帮忙的呢。实现代码如下:

斐波那契数列百度一下:

  斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13,特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。

正常逻辑:

# Author: lixy
num = int(input("输入一个整数:"))
a = 0
b = 1
if num <= 0:
    print("请输入一个正整数!")
elif num == 1:
    print("斐波拉契数列:%d" % a)
else:
    print("斐波拉契数列:", end=" ")
    print(a,b,end=" ")
    for i in range(1, num-1):
        c = a + b
        a,b=b,c
        print(c,end=" ")

方法二:

L = [0,1]
num = int(input("请输入你要的项数:"))
if(num <= 0):
  print("请输入一个正整数!");
elif(num <= 2):
  if(num == 1):
    print("数列是:0")
  else:
    print("数列是:0,1")
else:
  for i in range(2,num):
    f = L[i-1] + L[i-2]
    L.append(f)
  print("数组是:")
  print(L)

最后使用生成器的方法:

# python 用生成器生成斐波那契数列
def PeiBo():
    a = 0
    b = 1
    print(a, end=" ")
    while True:
        c = a + b
        a, b = b, c
        yield a

pei = PeiBo()

for x in pei:
    if x > 100:
        break
    print(x, end=" ")

结果展示:

最后:遇到这种,我估计直接出门左转了..

原文地址:https://www.cnblogs.com/lixy-88428977/p/9481369.html