非負の整数 n を入力として取り、n のバイナリ表現で 1 の数を返す再帰メソッド関数を作成したいと考えています。これは、n//2 (整数除算) の表現における 1 の数に、n が奇数の場合は 1 を加えたものに等しいという事実を使用するように指示されています。
Usage:
>>> ones(0)
0
>>> ones(1)
1
>>> ones(14)
3
わかりましたので、これは私がこれまでに取得したコードですが、まだ機能しません。nとして何を入力しても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)
ありがとうございました