作业不懂请帮忙解释一下,谢谢
def Dec2Bin(dec):result = ''
if dec:
result = Dec2Bin(dec//2)
return result + str(dec%2)
else:
return result
print(Dec2Bin(62)) 十进制转二进制,而且还是递归的算法
简单的递归程序你拿个纸笔,带个简单的值跟着走一遍,就能理解了
递归要有【递】和【归】,归是结束条件
这个代码【递】那就是 result = Dec2Bin(dec//2)
而 return result 和 return result + str(dec%2) 充当【归】
前者是第一次的【归】,也是【归】的开始,此后就执行 return result + str(dec%2)
比如代值为 3,代码的执行顺序是
Dec2Bin(3//2)
Dec2Bin(1//2)
return result=> ''
return result + str(dec%2)=> '' + str(1%2) => '1'
return result + str(dec%2)=> '1' + str(3%2) => '11'
结果就是 '11'
页:
[1]