お釣り

お釣り

中級

はじめに

神秘的な村Coinholtで、パン屋のカウンターの内側に立ち、焼きたての菓子を並べています。 扉がきしみながら開き、Denaraが入ってきます。彼女は目利きの商人で、良い品を見極める鋭い目を持っています。 軽い食事をすませると、彼女はきらめく硬貨をカウンター越しにすべらせます。その硬貨は100単位の価値を表しています。

微笑んで硬貨を受け取り、食事の合計金額に目をやります。88単位です。 つまり、お釣りとして12単位を返す必要があります。

Denaraは期待に満ちた様子で手を差し出します。 「硬貨は一番少ない枚数でいいからね」と、彼女は微笑みながら言います。 「巾着はもういっぱいだし、道中でなくしたくないの。」

いくつか選択肢があることはわかっています。 「お釣りにはLumis(10単位)、Viras(5単位)、Zenth(2単位)があります。」

頭の中で、あっという間に組み合わせを計算します。

  • Lumis1枚(1×10単位)+Zenth1枚(1×2単位)=合計2枚
  • Viras2枚(2×5単位)+Zenth1枚(1×2単位)=合計3枚
  • Zenth6枚(6×2単位)=合計6枚

「一番いいのは、Lumis1枚とZenth1枚の2枚ですね」と言い、お釣りを手渡します。

Denaraは微笑み、すっかり感心した様子です。 「いつもながら、間違いないわね。」

説明

硬貨の額の合計がお釣りの正しい金額と等しくなるように、お客さんに渡す硬貨の枚数が最も少なくなる組み合わせを求めます。

例

  • 金額が15で、使用できる硬貨の額が[1, 5, 10, 25, 100]のときは、額5の硬貨1枚と額10の硬貨1枚、つまり[5, 10]を返します。
  • 金額が40で、使用できる硬貨の額が[1, 5, 10, 25, 100]のときは、額5の硬貨1枚、額10の硬貨1枚、額25の硬貨1枚、つまり[5, 10, 25]を返します。
GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Gleam Exercism

お釣りを始める準備はできましたか?

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