找出以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

以上是 找出以C ++支付总金额所需的最小硬币数量 的全部内容, 来源链接: utcz.com/z/345260.html

回到顶部