求解答
result=''
def decbin(n):
if n>0:
result=result+str(n%2)
decbin(n//2)
n=int(input('hdh'))
decbin(n)
print(result)
……………………………………………………
result=result+str(n%2)
decbin(n//2)
第一行和第二行的顺序,+前面和后面两个参数的位置都对result的结果顺序有影响,理起来好费劲,大佬给我理下思路呗 本帖最后由 Twilight6 于 2020-5-25 17:08 编辑
emmm刚刚我说的没理解嘛{:10_245:}
你的代码还是错误的代码{:10_245:} # 假设传入的是10
def Dec2Bin(dec):
result = ''
if dec:
result = Dec2Bin(dec // 2)
# 这里用了递归 Dec2Bin(10)->Dec2Bin(5)->Dec2Bin(2)->Dec2Bin(1)->Dec2Bin(0)
return result + str(dec % 2)
# 然后开始返回值 Dec2Bin(0)->Dec2Bin(1)->Dec2Bin(2)->Dec2Bin(5)->Dec2Bin(10)
# 返回结果是 '' + '1' + '0' +'1' + '0'
else:
return result
print(Dec2Bin(10))
这样能理解吗? 如果顺序颠倒,我们返回的二进制就错误了
页:
[1]