找出以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 << "所需硬币最少数量: " << countMinCoins(n);
}

输出结果

所需硬币最少数量: 7