python旧版第23讲的课后题不明白
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)这里不理解,请大佬解释一下 递归2大条件
1, 函数调用自身 。 Dec2Bin(dec//2)
2,结束条件。 你这个要对递归有一个了解
你可以带一个比较小的值进去一步一步拿纸笔算算
我就带个dec = 5
def Dec2Bin(dec):
result = ''
if dec: # 当dec = 0 时执行归一
result = Dec2Bin(dec//2) # 递
return result + str(dec % 2) # 归二
else:
return result # 归一
print(Dec2Bin(5))
"""
第一次进入 Dec2Bin(5)
1递 dec = (5//2) => dec = 2 => 执行 Dec2Bin(2)
2递 dec = (2//2) => dec = 2 => 执行 Dec2Bin(1)
3递 dec = (1//2) => dec = 0 => 执行 归二 => return ''
3归 result = 3递返回值 => result = '' => 归二 => return '' + (1 % 2) =>return '1'
2归 result = 3归二返回值 => result = '1' => 归二 => return '1' + (2 % 2) =>return '10'
1归 result = 2归二返回值 => result = '10' => 归二 => return '10' + (5 % 2) =>return '101'
全部归完输出 101
""" 大马强 发表于 2022-2-26 21:44
你这个要对递归有一个了解
你可以带一个比较小的值进去一步一步拿纸笔算算
我就带个dec = 5
非常感谢!
页:
[1]