鱼C论坛

 找回密码
 立即注册
查看: 2805|回复: 6

[已解决]费布拉切数列list数组写法

[复制链接]
发表于 2020-2-23 16:59:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def fb(x):
        res=[]
        for i in range(1,x + 1):
                if x == 1:
                        res.append(1)
                elif x == 2:
                        res.append(1)
                else:
                        res.append(res[i - 2] + res[i - 3])
        return res

请问各位鱼友们,这样写为什么会报数组越界的错误,应该怎么改?

最佳答案
2020-2-26 17:56:17
oh,奥利给 发表于 2020-2-26 15:58
请问,从1开始循环,值不会存入res数组中嘛,到3为什么res不等于[1,1]呢?

按照你的意思,判断条件应该写成 i == 1 而不是x == 1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-23 18:28:38 | 显示全部楼层
当x=3时,[1,1]并没有append在res里,自然会出现越界错误,正确代码已经附上
  1. def fb(x):
  2.     if x == 1:
  3.         res.append(1)
  4.     elif x == 2:  
  5.         res.append(1)
  6.     else:
  7.         res=[1,1]
  8.         for i in range(2,x):
  9.             res.append(res[i-2] + res[i-1])
  10.         return res   
  11. print(fb(10))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-23 18:58:40 | 显示全部楼层
请问,我那样写,为什么[1,1]不在res里面呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-24 16:45:51 | 显示全部楼层
oh,奥利给 发表于 2020-2-23 18:58
请问,我那样写,为什么[1,1]不在res里面呀

因为传入x=3,进入循环后,会执行else:下的语句,此时你的res是空的,res[i - 2] 和 res[i - 3]索引不到数值,自然是越界了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-26 15:58:52 | 显示全部楼层
xiangzhihengkan 发表于 2020-2-24 16:45
因为传入x=3,进入循环后,会执行else:下的语句,此时你的res是空的,res 和 res索引不到数值,自然是越 ...

请问,从1开始循环,值不会存入res数组中嘛,到3为什么res不等于[1,1]呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-26 17:56:17 | 显示全部楼层    本楼为最佳答案   
oh,奥利给 发表于 2020-2-26 15:58
请问,从1开始循环,值不会存入res数组中嘛,到3为什么res不等于[1,1]呢?

按照你的意思,判断条件应该写成 i == 1 而不是x == 1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-2-26 19:46:26 | 显示全部楼层
我没注意到,明白了,谢谢你
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-2 07:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表