我正在编写一个带有参数“n”的函数,该函数将使用递归公式将十进制数转换为二进制数。
这就是我所拥有的非递归函数,但我需要弄清楚如何递归地编写它。
def dec2bin(n):
bStr = ''
if n < 0:
return 'Must be a positive integer'
elif n == 0:
return '0'
else:
bStr += str(n%2)
return bStr
原文由 user2553807 发布,翻译遵循 CC BY-SA 4.0 许可协议
你的代码几乎没问题。您实际上不必维护
bStr
。 Suppose you know the binary representation ofn//2
then binary representation ofn
is binary representation ofn//2
and0
ifn
被2
或1
整除。比如
n
=3
。n//2
=1
。dec2bin(n//2) = '01'
sodec2bin(n)
='01'+'1'
[because3
is not evenly divisible by2
] ='011'
你的代码应该是这样的。
就这样。