1. paizaラーニングトップ
  2. レベルアップ問題集
  3. Cランク・スキルチェック過去問題セット(言語選択)
  4. 問題一覧 Erlang(Beta)編
  5. 「1を数えよ」を解くために:part3 Erlang(Beta)編

Cランク・スキルチェック過去問題セットのサムネイル
「1を数えよ」を解くために:part3 Erlang(Beta)編(paizaランク C 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

「1を数えよ」では、整数 N が 10 進数表記で与えられます。
問題文にしたがって N を 2 進数に変換し、1 の個数を数えてみましょう。
なお、この問題は元の「1を数えよ」と同じ問題です。


与えられた 10 進数の整数 N を 2 進数に変換したときの 1 の個数を答えて下さい。

整数の 10 進数を 2 進数に変換するには、変換したい 10 進数を商が 0 になるまで 2 で割り続け求めた余りの部分を逆順に並べます。

例えば、10 進数の 11 を 2 進数に変換するときは以下のように処理します。
・11 を 2 で割ると商が 5、余りが 1 。

・5 を 2 で割ると商が 2、余りが 1 。

・2 を 2 で割ると商が 1、余りが 0 。

・1 を 2 で割ると商が 0、余りが 1 。商が 0 になったので処理を終了する。
この処理で求めた余りの部分を逆順に並べた 1011 が 10 進数の 11 を 2 進数に変換したものです。

入力される値

入力は以下のフォーマットで与えられます。

N

・1 行目に 10 進数の整数 N が与えられます。

・入力は合計で 1 行となり、末尾に改行が 1 つ入ります。


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

整数 N を 2 進数にしたときの 1 の個数を 1 行に出力してください。

出力の末尾に改行を入れ、余計な文字、空行を含んではいけません。

条件

すべてのテストケースにおいて、以下の条件をみたします。

・入力はすべて整数

・ 0 ≦ N ≦ 65535

入力例1

13

出力例1

3

入力例2

45

出力例2

4

問題一覧へ戻る

ページの先頭へ戻る