問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
part4 では AND 演算を使うことで最下位の桁が 1 かどうかを判定しました。
これをすべての桁に対して行えば N を 2 進数に変換したときの 1 の個数を数えることができます。
N を 2 進数に変換せずに AND 演算を使って解いてみましょう。
入力は以下のフォーマットで与えられます。
N
・1行目に 10 進数の整数 N が与えられます。
・入力は合計で 1 行となり、末尾に改行が 1 つ入ります。
整数 N を 2 進数にしたときの 1 の個数を 1 行で出力してください。
出力の末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・入力はすべて整数
・ 0 ≦ N ≦ 65535
13
3
45
4