使用【C++】写【用1元,2元,5元各1000枚凑1000元,输出凑成的方法总数】的代码
时间: 2024-12-20 14:15:45 浏览: 2
为了计算用1元、2元、5元硬币凑出1000元的不同组合方法数,你可以使用动态规划的方法。以下是一个简单的C++代码示例:
```cpp
#include <iostream>
using namespace std;
int dp[1001]; // dp数组用于存储前i元钱有多少种凑法
// 动态规划函数
int countWays(int amount) {
if (amount == 0) return 1; // 当金额为0时,只有一种方法,即不用硬币
if (amount < 0 || dp[amount] != -1) return dp[amount]; // 如果已计算过或金额负数,直接返回结果
// 初始化dp数组,所有值初始化为-1表示未计算
for (int i = 0; i <= 1000; ++i)
dp[i] = -1;
int waysWith1 = countWays(amount - 1); // 可以不选1元
int waysWith2 = countWays(amount - 2); // 可以选1个2元
int waysWith5 = countWays(amount - 5); // 可以选1个5元
// 计算总方法数并更新dp数组
dp[amount] = waysWith1 + waysWith2 + waysWith5;
return dp[amount];
}
int main() {
cout << "共有 " << countWays(1000) << " 种方法可以凑出1000元" << endl;
return 0;
}
```
这个程序会输出1000元可以用1元、2元和5元硬币凑出来的所有方法总数。
阅读全文