找零

找零

困難

簡介

在神祕的村莊 Coinholt 裡,你站在烘焙坊的櫃檯後方,正擺放著一批剛出爐的糕點。 門嘎吱一聲打開,走進來的是 Denara,一位眼光獨到、經驗豐富的商人。 快速用完一餐後,她把一枚閃閃發光的硬幣推過櫃檯,代表 100 單位的價值。

你微笑著收下硬幣,順便看了一眼這餐的總金額:88 單位。 這表示你得找回 12 單位的零錢。

Denara 滿懷期待地伸出手。 「只要給我數量最少的硬幣就好,」她笑著說。 「我的錢包已經滿了,我不想在路上冒險弄丟它們。」

你曉得自己有幾個選擇。 「我們有 Lumis(價值 10 單位)、Viras(價值 5 單位)和 Zenth(價值 2 單位)可以找零。」

你在腦中迅速盤算各種可能:

  • 一枚 Lumis(1 × 10 單位)加一枚 Zenth(1 × 2 單位)= 共 2 枚硬幣
  • 兩枚 Viras(2 × 5 單位)加一枚 Zenth(1 × 2 單位)= 共 3 枚硬幣
  • 六枚 Zenth(6 × 2 單位)= 共 6 枚硬幣

「最好的選擇是兩枚硬幣:一枚 Lumis 和一枚 Zenth,」你說著,把零錢交給她。

Denara 笑了,顯然很佩服。 「一如往常,你總是算得剛剛好。」

說明

找出要給顧客的最少硬幣數量,讓這些硬幣的值的總和等於正確的找零金額。

範例

  • 金額為 15,可用硬幣的值為 [1, 5, 10, 25, 100] 時,應該回傳一個值為 5 的硬幣和一個值為 10 的硬幣,也就是 [5, 10]。
  • 金額為 40,可用硬幣的值為 [1, 5, 10, 25, 100] 時,應該回傳一個值為 5 的硬幣、一個值為 10 的硬幣,以及一個值為 25 的硬幣,也就是 [5, 10, 25]。
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Go Exercism

準備好開始 找零 了嗎?

註冊 Exercism,透過 34 個概念165 個練習 和真人引導來學習並精通 Go,全部免費。