努力去见你 发表于 2020-4-24 11:52:04

递归

本帖最后由 努力去见你 于 2020-4-24 13:17 编辑

if result != -1:这个写和不写有什么区别,如果result = -1的话,在n<1的地方不就判断了么
def fad(n):
    if n<1:
      print('输入有误')
      return -1
    if n==2 or n==1:
      return 1
    else:
      return fad(n-2)+fad(n-1)
result=fad(int(input('请输入一个数字:')))
if result != -1:
    print('%d'%result)

weiter 发表于 2020-4-24 11:55:21

会判断啊,但是你的数值不符合要求:输入小于一
所以就会输出“输入有误”
然后剩下的……

zltzlt 发表于 2020-4-24 12:54:44

如果用户输入的有误则打印 “输入有误” 并返回 -1,之后接收返回值,如果返回值为 -1 则代表用户输入的有误,不执行下面一句

努力去见你 发表于 2020-4-24 13:20:29

zltzlt 发表于 2020-4-24 12:54
如果用户输入的有误则打印 “输入有误” 并返回 -1,之后接收返回值,如果返回值为 -1 则代表用户输入的有 ...

如果我输入有误,在if n < 1:的地方不就判断用户输入有误了么,为什么还需要用if result != 1:

zltzlt 发表于 2020-4-24 13:21:07

努力去见你 发表于 2020-4-24 13:20
如果我输入有误,在if n < 1:的地方不就判断用户输入有误了么,为什么还需要用if result != 1:

你去掉 if result != -1 试试,当输入有误的时候还会打印结果

努力去见你 发表于 2020-4-24 13:21:30

weiter 发表于 2020-4-24 11:55
会判断啊,但是你的数值不符合要求:输入小于一
所以就会输出“输入有误”
然后剩下的……

如果我输入有误,在if n < 1:的地方不就判断用户输入有误了么,为什么还需要用if result != 1:,如果我不写if result != 1:会在什么情况下出问题么

努力去见你 发表于 2020-4-24 13:26:11

zltzlt 发表于 2020-4-24 13:21
你去掉 if result != -1 试试,当输入有误的时候还会打印结果

奥奥,懂了,谢谢

zltzlt 发表于 2020-4-24 13:27:43

努力去见你 发表于 2020-4-24 13:26
奥奥,懂了,谢谢

如果你的问题已解决,请设置【最佳答案】
页: [1]
查看完整版本: 递归