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