鱼C论坛

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

[已解决]关于递归的小问题

[复制链接]
最佳答案
0 
发表于 2018-2-13 21:58:59 | 显示全部楼层 |阅读模式
2鱼币
def Dec2Bin(dec):
    result = ''
   
    if dec:
        result = Dec2Bin(dec//2)
        return result + str(dec%2)
    else:
        return result

print(Dec2Bin(62))


哪位大神指导指导呀,帮忙解读一下这个递归
最佳答案
2018-2-13 21:59:00
就你这一段代码说明一下:
函数Dec2Bin(62)运行后返回 Dec2Bin(31) + str(0)
而 Dec2Bin(31) 的返回值是 Dec2Bin(15) + str(1),所以 Dec2Bin(62) 返回的就变成了 Dec2Bin(15) + str(1) + str(0)
一直递归下去直到 dec = 0,此时 Dec2Bin(0) 返回的是 '',所以整个函数的返回值就是  '' +...+ str(1) + str(0) 。

最佳答案

查看完整内容

就你这一段代码说明一下: 函数Dec2Bin(62)运行后返回 Dec2Bin(31) + str(0) 而 Dec2Bin(31) 的返回值是 Dec2Bin(15) + str(1),所以 Dec2Bin(62) 返回的就变成了 Dec2Bin(15) + str(1) + str(0) 一直递归下去直到 dec = 0,此时 Dec2Bin(0) 返回的是 '',所以整个函数的返回值就是 '' +...+ str(1) + str(0) 。
最佳答案
190 
发表于 2018-2-13 21:59:00 | 显示全部楼层    本楼为最佳答案   
就你这一段代码说明一下:
函数Dec2Bin(62)运行后返回 Dec2Bin(31) + str(0)
而 Dec2Bin(31) 的返回值是 Dec2Bin(15) + str(1),所以 Dec2Bin(62) 返回的就变成了 Dec2Bin(15) + str(1) + str(0)
一直递归下去直到 dec = 0,此时 Dec2Bin(0) 返回的是 '',所以整个函数的返回值就是  '' +...+ str(1) + str(0) 。
最佳答案
13 
发表于 2018-2-14 00:13:31 | 显示全部楼层
功能是十进制转二进制,过程大致就是楼上那样
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号

GMT+8, 2018-8-15 23:01

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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