鱼C论坛

 找回密码
 立即注册
查看: 2514|回复: 2

[已解决]递归函数的执行问题

[复制链接]
发表于 2021-4-29 18:40:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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 ,也就是空,什么也没有啊

哪位鱼油帮忙解惑一下啊,实在太苦恼了!

最佳答案
2021-4-29 19:12:17
你都一层一层地调用了,也得一层一层地返回吧
调用那么多遍,一次返回就完事了?
return b+str(a%2)
这不还有个拼接操作嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-29 19:12:17 | 显示全部楼层    本楼为最佳答案   
你都一层一层地调用了,也得一层一层地返回吧
调用那么多遍,一次返回就完事了?
return b+str(a%2)
这不还有个拼接操作嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-29 21:38:50 | 显示全部楼层
qiuyouzhi 发表于 2021-4-29 19:12
你都一层一层地调用了,也得一层一层地返回吧
调用那么多遍,一次返回就完事了?

明白了,谢谢啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-9 01:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表