- ベストアンサー
再帰的関数 2進数の1の個数
f(x)=if x=0 then 0 else if divisible(x,2) then f(x/2) else f(x/2)+1 divisibleは2で割り切れる、x/2は整除です。2で割ったときの整数値 この式が、xを2進数であらわしたときの1の数を表す、というのですが、 式に数値を入れてみても、1の数にならず困っています。 ご指導いただけましたら幸いです。 よろしくお願い申し上げます。
- みんなの回答 (2)
- 専門家の回答
f(x)=if x=0 then 0 else if divisible(x,2) then f(x/2) else f(x/2)+1 divisibleは2で割り切れる、x/2は整除です。2で割ったときの整数値 この式が、xを2進数であらわしたときの1の数を表す、というのですが、 式に数値を入れてみても、1の数にならず困っています。 ご指導いただけましたら幸いです。 よろしくお願い申し上げます。
お礼
ご回答ありがとうございます。 とても分かりやすく理解できました。 問題のf( )= と =が付けられるのも不思議です。 情報の世界は不思議なことが多いですね。