递归函数的执行问题
def D(a):b=''
if a:
b=D(a//2)
return b+str(a%2)
else:
return b
n=int(input('请输入一个整数:'))
print(D(n))
这个递归到底是咋运行的呀?
例如:
n=2
首先到b='',
然后 if 判断,2!=0,执行b=D(2//2),这里2//2=1,也就是a=1,回到D(1)
然后再次到b='',判断1!=0 ,执行b=D(1//2),这里1//2=0,也就是a=0,回到D(0)
最后再到b='',判断0=0,进入else,return b
这样是不是就结束了?
最后结果应该是 b ,也就是空,什么也没有啊
哪位鱼油帮忙解惑一下啊,实在太苦恼了!
你都一层一层地调用了,也得一层一层地返回吧
调用那么多遍,一次返回就完事了?
return b+str(a%2)
这不还有个拼接操作嘛 qiuyouzhi 发表于 2021-4-29 19:12
你都一层一层地调用了,也得一层一层地返回吧
调用那么多遍,一次返回就完事了?
明白了,谢谢啊
页:
[1]