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

エリウドの卵

初級

はじめに

友人の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進数

8

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

1

説明

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

制限

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

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

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

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