江湖散人 发表于 2021-3-23 21:40:10

迭代递归问题

def fblj(n):
    if n < 1:
      return -1
    if n != 1 or n != 2:
      return fblj(n-1) + fblj(n-2)
    else:
      return 1


a = int(input("输入一个数字:"))
b = fblj(a)
print(b)

这个程序哪里有问题啊?我怎么运行出来,当a=12的时候结果是-377啊
哪位大神帮忙看看啊,谢啦

逃兵 发表于 2021-3-24 08:37:30

程序能运行不报错,证明没问题

你想要什么结果

Loganable 发表于 2021-3-24 09:44:35

你这个应该是要输出斐波那契数列第n项的值吧,第二个if的判断条件把 or 改为 and。

江湖散人 发表于 2021-3-24 09:46:15

Loganable 发表于 2021-3-24 09:44
你这个应该是要输出斐波那契数列第n项的值吧,第二个if的判断条件把 or 改为 and。

明白了,谢谢啊
页: [1]
查看完整版本: 迭代递归问题