21xrx.com
2024-11-25 05:13:35 Monday
登录
文章检索 我的文章 写文章
C++ 找零代码
2023-07-05 10:04:45 深夜i     --     --
C++ 找零 代码

C++是一种常用的编程语言,可以用于解决各种问题。其中,找零问题是一个典型的例子。在这个问题中,我们需要编写一个程序来确定找零的最优解,以尽可能少的硬币数量来完成。

下面是一份示例的C++代码,可以用来解决找零问题:


#include <iostream>

#include <vector>

using namespace std;

vector<int> coins = 10; // 可用的硬币面值

vector<int> makeChange(int value) {

 vector<int> result(coins.size()); // 存储找零结果的数组

 for(int i=coins.size()-1;i>=0;i--) {

  while(value>=coins[i]) { // 对于每个硬币面值,尽可能多地使用它

   value -= coins[i];

   result[i]++;

  }

 }

 return result;

}

int main() {

 int value;

 cout << "请输入需要找零的金额:" << endl;

 cin >> value; // 获取需要找零的金额

 vector<int> result = makeChange(value); // 使用 makeChange 函数得到最优解

 cout << "最佳找零方案为:" << endl;

 for(int i=0;i<coins.size();i++) {

  if(result[i]>0) cout << coins[i] << "元硬币 " << result[i] << "个" << endl; // 输出结果

 }

 return 0;

}

以上程序中,我们首先定义了一个硬币面值的向量(vector),其中以美分的形式存储了可用的四种硬币:1分、5分、10分和25分。接着,我们定义了一个 makeChange 函数,用于计算给定金额的最优找零方案。

该函数工作原理如下:对于每个硬币面值,我们尽可能多地使用它来找零。具体地,我们从最大面值的硬币开始,如果当前面值比剩余的找零金额小,则使用它,并更新剩余的金额和最优找零方案。直到剩余金额为零或者所有硬币都被考虑完毕为止。

在主函数中,我们首先获取需要找零的金额,接着使用 makeChange 函数计算最优解,并输出结果。

以上就是一份简单的C++找零代码,可以用来解决这个经典的问题。当然,如果要考虑更多情况,比如硬币的种类、面值等的变化,还需要进一步修改和完善。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复