为了账号安全,请及时绑定邮箱和手机立即绑定

我的代码中的错误在哪里(斐波那契)?

我的代码中的错误在哪里(斐波那契)?

守着星空守着你 2023-04-25 15:56:12
那是代码(我使用 python 3):def fibonacci(x):  if x == 1 or 2:    return 1  f = fibonaci(x-1) + fibonaci(x-2)   return fprint(fibonacci(4))我想得到的输出是 3,这是第四个斐波那契数。但是我得到 1 作为输出。f = fibonaci(x-1) + fibonaci(x-2)我认为该代码没有执行我想要它执行的操作。可以说我会把它fibonacci(3)作为我的输入。我认为应该发生的事情:f = fibonacci(3-1) + fibonacci(3-2)fibonacci(3-1)并且fibonacci(3-2)都应该返回 1 吗?所以f应该 = 2 并且fibonacci(3)应该给我 2 作为输出。但是我得到的输出仍然是1。错误在哪里?
查看完整描述

1 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

错误在你的if条款中。你的意思大概是这样的:

if x == 1 or x == 2:

一如既往if 2的“真实”,所以对于任何x你都会得到1

然而,这仍然是错误的,因为在斐波那契数列中,前两个数字是01,所以:

if x <= 1: 
   return x


查看完整回答
反对 回复 2023-04-25
  • 1 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信