トラック
/
Erlang
Erlang
/
演習
/
エリウドの卵
エリウドの卵

エリウドの卵

初級

はじめに

友人のEliudは、祖母のTigistから農場を受け継ぎました。 祖母は発明家で、物事を必要以上に複雑に作り上げる癖がありました。 鶏小屋にはデジタルディスプレイが付いていて、拾うことのできる卵すべての位置を表す符号化された数値が表示されます。

Eliudは、鶏小屋にある実際の卵の数を表示するプログラムを書いてほしいと頼んでいます。

位置情報の符号化は、次のように計算します。

  1. 卵が産まれる可能性のある場所を調べて、卵があれば1、空っぽなら0を書き留めます。
  2. その数を2進数から10進数に変換します。
  3. 結果をディスプレイに表示します。

例1

横一列に並んだ7つの巣箱で、1番目、3番目、4番目、7番目の巣にはそれぞれ卵が1つずつ入っています。

 _ _ _ _ _ _ _
|E| |E|E| | |E|

変換後の2進数

1011001

 _ _ _ _ _ _ _
|1|0|1|1|0|0|1|

ディスプレイに表示される10進数

89

鶏小屋にある実際の卵の数

4

例2

横一列に並んだ7つの巣箱で、卵が入っているのは4番目の巣だけです。

 _ _ _ _ _ _ _
| | | |E| | | |

変換後の2進数

0001000

 _ _ _ _ _ _ _
|0|0|0|1|0|0|0|

ディスプレイに表示される10進数

16

鶏小屋にある実際の卵の数

1

説明

数値の2進数表現に含まれる1になっているビットの数を数えることが課題です。

制限

標準ライブラリが提供しているビットを数える機能には手を出さないでください! 代わりに、他の基本的なツールを使って自分で解いてください。

GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Erlang Exercism

エリウドの卵を始める準備はできましたか?

Exercismに登録すれば、85個の演習、そして本物の人間によるメンタリングとともに、Erlangを学んでマスターできます。すべて無料です。