雨粒

雨粒

初級

はじめに

雨粒は、面接の定番の質問であるFizzBuzzチャレンジを、少し複雑にしたものです。

説明

ここでの課題は、数値を対応する雨粒の音に変換することです。

与えられた数値が次の場合を考えます。

  • 3で割り切れるなら、結果に "Pling" を追加します。
  • 5で割り切れるなら、結果に "Plang" を追加します。
  • 7で割り切れるなら、結果に "Plong" を追加します。
  • 3、5、7のいずれでも割り切れないなら、結果はその数値を文字列にしたものとします。

例

  • 28は7で割り切れますが、3でも5でも割り切れないので、結果は"Plong"になります。
  • 30は3と5で割り切れますが、7では割り切れないので、結果は"PlingPlang"になります。
  • 34は3、5、7のいずれでも割り切れないので、結果は"34"になります。
Note

ある数が別の数で割り切れるかどうかを確かめるよくある方法は、余りまたは剰余を0と比べることです。 ほとんどのプログラミング言語には、どちらか一方(または両方)のための演算子や関数が用意されています。

jqのヒント

この演習では、if-then-else式が役に立ちます。

例を見てみましょう。

8, 10, 12 | if . < 10 then "\(.) is less than ten"
            elif . > 10 then "\(.) is more than ten"
            else "\(.) equals ten"
            end

出力は次のようになります。

"8 is less than ten"
"10 equals ten"
"12 is more than ten"
GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
jq Exercism

雨粒を始める準備はできましたか?

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

雨粒を深く掘り下げよう!

関数型パイプライン、行列の積、マクロを使った事前計算テーブルによる解法、オブジェクト指向のアプローチ、PythonとTCLの見事な活用法、そしてエンタープライズ版まで、さまざまな解法を紹介します。