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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值