【发布时间】:2012-06-06 21:13:37
【问题描述】:
def dec2binr(n):
if n == 1:
return '1'
else: return (str(n%2)+dec2binr(n//2))[::-1]
没有 [::-1] 它返回反转正确的二进制数。 [::-1] 在这种情况下不起作用 - 对于 n=40 Ii 得到:
011000
当我期望的时候
101000
没有 [::-1] 我得到 p>
000101
这是相反的,但正确。 为什么会发生这种情况,我该如何解决?
【问题讨论】:
-
您也需要
0的基本案例。 -
@MartijnPieters 确实如此,但是当
0被传入时,我们返回str(n%2)与递归函数调用的结果(同样,带有0的参数) -
好点,他需要一个 0.. 的基本情况。