預期這將無法正常工作,因爲你必須在兩個地方打印,您將結束與多條線路,如:
>>> def binary(n):
... if n < 2:
... print n
... else:
... binary(n/2)
... print n % 2
...
>>> binary(0)
0
>>> binary(1)
1
>>> binary(3)
1
1
>>> binary(9)
1
0
0
1
>>> binary(10)
1
0
1
0
其他答案使用字符串,所以這裏有一個列表::)
>>> def binary(n):
... if n < 2:
... return [n]
... else:
... return binary(n/2) + [n % 2]
...
>>> binary(0)
[0]
>>> binary(1)
[1]
>>> binary(3)
[1, 1]
>>> binary(9)
[1, 0, 0, 1]
>>> binary(10)
[1, 0, 1, 0]
如果你真的想要一個字符串,它是如此簡單:
>>> bin(10)[2:]
'1010'
如何這樣的::)
>>> ''.join(map(str, binary(10)))
'1010'
當然,因爲你已經發現了關於功能bin,你應該已經擺在首位做到了這一點讓我想起了這一點:
快樂編碼! :)
哪裏是遞歸? – 2012-02-21 04:04:32
爲什麼不使用bin如果使用python: In [1]:bin(9) Out [1]:'0b1001' – avasal 2012-02-21 04:22:03
@Ignacio內置bin函數使用他的二進制函數和我們有一個相互的? – 2012-02-21 04:23:51