在 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 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告