wmy1212 发表于 2021-7-31 12:54:49

关于斐波那契数列的迭代法

想问问大家这代码为什么报错了,是在n* = n - 2的这个等号,说是语法错误···
def rabbit(n):
    if n == 1 or n == 2:
      return 1
    else:
      result1 = 1
      result2 = 1
      n* = n - 2
      while n* >= 1:
            result20 = result2
            result2 = result1 + result20
            result1 = result20
            n* -= 1
      else:
            return result2

n = int(input('请输入经历的月数:'))
result = rabbit(n)
print('经历了 %d 个月后,总共有 %d 对小兔崽子。' % (n,result))

青出于蓝 发表于 2021-7-31 13:10:52

本帖最后由 青出于蓝 于 2021-7-31 13:52 编辑

def rabbit(n):
    if n == 1 or n == 2:
      return 1
    else:
      result1 = 1
      result2 = 1
      n-=2
      while n >= 1:
            result3=result2
            result2 = result2+result1
            result1 = result3
            n -= 1
      else:
            return result2

n = int(input('请输入经历的月数:'))
result = rabbit(n)
print('经历了 %d 个月后,总共有 %d 对小兔崽子。' % (n,result))

青出于蓝 发表于 2021-7-31 13:12:42

稍微改了一下

wmy1212 发表于 2021-7-31 13:22:32

找到问题了,应该是星号不能乱用,我把n*重新起了个名字,就能跑起来了~

wmy1212 发表于 2021-7-31 13:23:36

青出于蓝 发表于 2021-7-31 13:10


同学,谢谢你呀!但是这里n-2不能去掉的哦,去掉了这个程序不能得到正确的结果~我找到问题啦,是*不能乱用,换个变量名就行了~还是谢谢你~{:5_109:}

青出于蓝 发表于 2021-7-31 13:32:54

wmy1212 发表于 2021-7-31 13:23
同学,谢谢你呀!但是这里n-2不能去掉的哦,去掉了这个程序不能得到正确的结果~我找到问题啦,是*不能乱 ...

脑子昏了,没再idle上面跑
确实应该-2
谢谢{:10_323:}

柿子饼同学 发表于 2021-7-31 15:12:18

wmy1212 发表于 2021-7-31 13:22
找到问题了,应该是星号不能乱用,我把n*重新起了个名字,就能跑起来了~

建议起名字的时候起n1,n2这样的,或者按照功能来取名
然后就是变量名不能跟自带的关键字和函数名冲突
不重要的临时变量可用'_'下划线

柿子饼同学 发表于 2021-7-31 16:17:36

wmy1212 发表于 2021-7-31 13:23
同学,谢谢你呀!但是这里n-2不能去掉的哦,去掉了这个程序不能得到正确的结果~我找到问题啦,是*不能乱 ...

???最佳给我干嘛
给楼上啊
不能乱给啊
页: [1]
查看完整版本: 关于斐波那契数列的迭代法