猪猪虾 发表于 2020-3-23 21:23:38

23讲第三题,什么地方有问题呢,比答案稍大

本帖最后由 猪猪虾 于 2020-3-23 21:25 编辑

#使用递归编程求解以下问题:
#有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。
#问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。
#问第2个人,说比第一个人大两岁。
#最后问第一个人,他说是10岁。请问第五个人多大?
def age(num):
    global time
    if time<=5:
      time+=1
      return age(num+2)
    return num

time=1
number=int(input("enter the age of the fist man:"))
result=age(number)
print("the age of the fifth man:",result)   

sunrise085 发表于 2020-3-23 21:34:22

第一个人到第五个人,不是差四个人吗?
if条件应该是time<5,递归四次就可以啦!

猪猪虾 发表于 2020-3-23 21:41:01

sunrise085 发表于 2020-3-23 21:34
第一个人到第五个人,不是差四个人吗?
if条件应该是time

可是我的time初值给的是1,累计5次,应该是<=5,才总共累计5次

sunrise085 发表于 2020-3-23 21:44:23

猪猪虾 发表于 2020-3-23 21:41
可是我的time初值给的是1,累计5次,应该是

你找个数试一试不就知道了?
你是先进行判断,再进行的+1.程序运行结束后,time=6

猪猪虾 发表于 2020-3-23 22:03:10

sunrise085 发表于 2020-3-23 21:44
你找个数试一试不就知道了?
你是先进行判断,再进行的+1.程序运行结束后,time=6

好吧,我以为是我的巧合,凑出来的18,蟹蟹
页: [1]
查看完整版本: 23讲第三题,什么地方有问题呢,比答案稍大