【问题标题】:Fibonacci numbers program斐波那契数列程序
【发布时间】:2020-01-21 12:58:15
【问题描述】:

我正在尝试编写一个显示斐波那契数的程序,但是,这些数字不能正确打印出来,并且对于斐波那契数的含义来说总是高出一个数字,有人能理解为什么吗?

这是我的代码:

a, b = 0, 1
while b < 1000:
      print(b, '', end='')
      a, b = b, a + b

(必须使用那 4 行代码)

这是我得到的输出

1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

这是我正在寻找的输出 0 1 2 4 7 12 20 33 54

程序也应该从 0 而不是 1 开始

【问题讨论】:

    标签: python-3.x


    【解决方案1】:

    尝试打印a 而不是bab 是序列的前两项,因此如果要打印第一项,则必须打印 a

    要获得所需的输出,而不是通常的斐波那契数列,您还需要在每次迭代时将 b 增加一:

    a, b = b, (a + b + 1)
    

    【讨论】:

    • 那么喜欢 print(a, ' ' , end= ' ' )?
    • 这给出了 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 的输出,我认为斐波那契是 0 1 2 4 7 12 20 33 54
    • @FawcettFawcett 看起来你的输出是正确的,但定义是错误的,en.wikipedia.org/wiki/Fibonacci_number
    • 我的申请,我的讲师给了我们一个作业,给出了序列的前几个数字,并说输出应该是这样的
    • 看起来您只需在每次迭代时将 1 添加到 b 即可获得您正在寻找的序列。
    【解决方案2】:

    打印 'a' 而不是 'b' 将解决您的问题。 试试这个代码,这会解决你的问题。

    a, b = 0, 1
    while b < 1000:
        print(a, '', end='')
        a, b = b, a + b
    

    当我跟踪我得到的你的代码时,

    • 第一次迭代:a=0,b=1 第二次迭代:a=1,b=1 第三次迭代:a=1,b=2 第 4 次:a=2,b=3 第 5 次:a=3,b=5 并继续..

    【讨论】:

      猜你喜欢
      • 2010-12-20
      • 2015-06-05
      • 1970-01-01
      • 1970-01-01
      • 2013-08-03
      • 2014-05-19
      • 2015-08-30
      相关资源
      最近更新 更多