摆动的呆毛 发表于 2020-4-3 15:01:30

递归问题

def yuo(n):
    i = ''
    if n:
      i= yuo(n//2)
      returni + str(n%2)
    else:
      return i
print(yuo(10))


you(5)+str(10%2)
yuo(2)+str(5%2)+str(10%2)
you(1)+str(2%2+str(5%2)+str(10%2)
you(0)+str(1%2)+str(2%2+str(5%2)+str(10%2)


这个you(0)开不出来了,最后怎么算出的。

sunrise085 发表于 2020-4-3 15:10:57

递归函数中有个if分支,you(0)走的都是else分支,直接返回''

BngThea 发表于 2020-4-3 15:15:27

当n为0,if不成立,直接返回 ' '

qiuyouzhi 发表于 2020-4-3 15:21:54

程序后面有个else,如果n除到0了,就直接返回空字符串,结束程序。

牛奶汤圆 发表于 2020-4-3 18:27:11

传入you参数是0,进入函数后,当参数为0就执行else 直接返回空字符{:10_257:}
页: [1]
查看完整版本: 递归问题