【问题标题】:Fibonacci sequence formula not working斐波那契数列公式不起作用
【发布时间】:2016-05-10 20:17:08
【问题描述】:

请参阅下面的图片以获取我的参考资料。 第一列只是给我们行号 第 2 列是斐波那契数列,只需将前 2 列相加即可得到新行 第三列应该是最后一行 b 除以前一个值的商

它一直工作到第 4 次迭代,其中分数应该是: 1.6,但从那时起它是 1.0000000 第三列应该是

0
1
2
1.66666666667
1.6
1.625 etc etc.

但它正在做

0
1
2
1.0000
1.0000
1.0000
1.0000 etc.

我的代码有什么问题?它应该工作,但不是。这是python 3代码:

a, b = 0, 1
num = 1
i = 1
f= 0

#loop
for i in range(1, 101):
   #use if to avoid divide by zero initially because a is 0
   if a >= 1:
      f = b / a

   #print 3 column of 3 different numbers   
   print ('{0:4d} {1:20d} {2:1.14f}'.format(i, b, f) )
   i = i + 1 
   a,b = b, a+b

【问题讨论】:

  • 你 100% 确定你在 Python 3 上运行它吗?因为在 Python 2 中我知道问题出在哪里。尝试添加print 1(完全一样,没有括号),看看它是否会引发语法错误。
  • 我安装了 3 个,但默认运行 2 个。我忘记了。所以我接受@LexScarisbrick 的回答,因为它起作用了。

标签: python algorithm python-3.x formatting fibonacci


【解决方案1】:

如果您使用的是 Python 2,请更改行:

f = b / a

进入

f = float(b) / float(a)

您确定您使用的是 Python 3 吗? python -V 报告什么?

【讨论】:

  • 这对我有用,所以看起来我运行的是 2.7.6,因为我只是使用了命令 python。我忘了我必须运行 python3 才能使用它。因此,我为您提供了 python 2 解决方案的答案,该解决方案有效。只是好奇 Python3 的解决方案是什么? python -v 返回很多东西,所以我会跳过它,因为我有解决方案。
  • 它应该只在 Python 3 中工作,而无需更改 float()。要获取 Python 版本,请确保使用大写的 vee:python -V
猜你喜欢
  • 1970-01-01
  • 2015-06-05
  • 1970-01-01
  • 2013-08-03
  • 2014-05-19
  • 2015-08-30
  • 2013-03-14
相关资源
最近更新 更多