我想编写一个递归方法函数,它以非负整数 n 作为输入并返回 n 上二进制表示中 1 的数量。我被指示使用这样一个事实,即这等于 n//2(整数除法)表示中 1 的数量,如果 n 是奇数,则加 1。
Usage:
>>> ones(0)
0
>>> ones(1)
1
>>> ones(14)
3
好的,这是我到目前为止得到的代码,但它仍然无法正常工作。无论我输入什么,它都会给我 0。
def numOnes(n):
# base case
if n==0:
print (0)
elif n ==1:
print (1)
# recursive case
else:
return numOnes(n//2)+numOnes(n%2)
谢谢