在 C++ 中找出支付總金額所需的最小硬幣數量


假設我們有一個數字 N,以及無限數量的面值為 1、10 和 25 的貨幣硬幣。找出我們需要使用多少個硬幣才能準確支付金額 N。假設 N 為 14,那麼硬幣數量將為 5,因為一個面值為 10 的硬幣和四個面值為 1 的硬幣。

為了解決這個問題,我們需要遵循以下步驟:

  • 如果 N < 10,則返回 N 個面值為 1 的硬幣
  • 如果 N > 9 且 N < 25,則將該值除以 10 並得到結果,剩餘部分將使用面值為 1 的硬幣來支付,將計數新增到結果中
  • 如果 N > 25,則將其除以 25,取結果,當結果 < 25 時,再次對第二點執行相同的任務,依此類推。

示例

即時演示

#include<iostream>
using namespace std;
int countMinCoins(int n) {
   if(n<10)
      return n;
   else if(n > 9 && n < 25){
      int count = n/10;
      count += n%10;
      return count;
   } else {
      int count = n/25;
      return count + countMinCoins(n%25);
   }
}
int main() {
   int n = 88;
   cout << "Minimum number of coins required: " << countMinCoins(n);
}

輸出

Minimum number of coins required: 7

更新於: 2019-12-18

248 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告