学习Python的小作业 - 斐波那契数列

妃妃
2021-02-19 / 3 评论 / 60 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年03月28日,已超过49天没有更新,若内容或图片失效,请留言反馈。

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

def fibo(n):
sum = []
if n == 1:
    sum.append(1)
    return sum
elif n == 2:
    for i in range(2):
        sum.append(1)
    return  sum
sum = [1,1]
for k in range(2,n):
    a = sum[-1] + sum[-2]
    sum.append(a)
return sum

while True:
p = input("请输入斐波那契数列数量(exit 结束):")
if p == "exit":
    print("您已经手动退出程序!!!")
    break
elif p.isdigit():
    result = fibo(int(p))
    print(result)
else:
    print("请输入整数!!!")

上段代码有点小bug,输入为0时会循环计算两次,修改初始化时的数组

def fibo(n):
sum = []
if n == 1:
    sum.append(0)
    return sum
elif n == 2:
    sum = [0]
    for i in range(1):
        sum.append(1)
    return sum
elif n == 0:
    sum=[]
    return  sum
sum = [0,1]
for k in range(2,n):
    a = sum[-1] + sum[-2]
    sum.append(a)
return sum

while True:
p = input("请输入斐波那契数列数量(exit 结束):")
if p == "exit":
    print("您已经手动退出程序!!!")
    break
elif p.isdigit():
    result = fibo(int(p))
    print(result)
else:
    print("请输入整数!!!")

下载地址

3

评论 (3)

取消
  1. 头像
    创始人爸爸
    Android · Google Chrome

    表情

    回复
    1. 头像
      妃妃 作者
      Linux · Google Chrome
      @ 创始人爸爸

      表情

      回复
      1. 头像
        创始人爸爸
        Android · Google Chrome
        @ 妃妃

        表情

        回复