在 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
廣告