C++将任意给定的整百元钞票,兑换成10元、20元、50元小钞票形式。输出兑换方案总数。 输入 需要兑换的钞票总数n,注意n是整百元钞票,且100<=n<=100000。 输出 输出方案总数。
时间: 2024-02-15 11:05:57 浏览: 46
```c++
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int dp[4][n/10+1];
int c[4] = {0, 10, 20, 50}; // 面额列表
// 初始化
for (int i = 0; i <= n/10; i++) {
dp[1][i] = 1;
}
for (int i = 2; i <= 3; i++) {
for (int j = 0; j <= n/10; j++) {
dp[i][j] = 0;
}
}
// 递推
for (int i = 2; i <= 3; i++) {
for (int j = 1; j <= n/10; j++) {
dp[i][j] = dp[i-1][j];
if (j >= c[i]) {
dp[i][j] += dp[i][j-c[i]];
}
}
}
// 输出结果
cout << dp[3][n/10] << endl;
return 0;
}
```
相关问题
小明有n张50元的钞票,他想去银行换成一元、五元和十元的零钱,每种零钱至少3张,问一共有多少种兑换方案?C++代码
好的,以下是对应的C++代码实现:
```c++
#include <iostream>
#include <cstring>
using namespace std;
const int MAXN = 205;
int dp[MAXN][MAXN];
int main() {
int n;
cin >> n;
memset(dp, 0, sizeof(dp));
dp[0][0] = 1;
for (int i = 1; i <= 3; i++) {
for (int j = i * 10; j <= n * 50; j++) {
for (int k = 1; k <= min(j / 10, 50); k++) {
dp[i][j] += dp[i - 1][j - k * 10];
}
}
}
cout << dp[3][n * 50] << endl;
return 0;
}
```
其中,我们可以发现题目中给出的条件是每种零钱至少3张,因此我们可以将零钱面额限制在1元、5元、10元,并且每种面额最多使用50张。然后,我们可以定义状态dp[i][j]表示前i种面额,一共j元的兑换方案数。最终答案即为dp[3][n * 50]。
接着,我们可以根据上述状态转移方程,使用三重循环进行状态转移,得到最终的结果。
需要注意的是,由于每种面额最多使用50张,因此我们在第二重循环中枚举的数值应该是i * 10到n * 50。在第三重循环中,我们需要限制每种面额最多使用50张,因此我们枚举的数值应该是1到min(j / 10, 50)。
希望能够帮到你!
用c++编程完成如下功能:“将一元人民币兑换成1分,两分,5分的硬币,输出所有的兑换法”
以下是用 C 编程实现将一元人民币兑换成1分、2分、5分硬币的代码:
```c
#include <stdio.h>
int main() {
int i, j, k, count = 0;
for (i = 0; i <= 100; i++) {
for (j = 0; j <= 50; j++) {
for (k = 0; k <= 20; k++) {
if (i + j * 2 + k * 5 == 100) {
printf("%d: 1分%d个,2分%d个,5分%d个\n", ++count, i, j, k);
}
}
}
}
return 0;
}
```
这段代码使用三重循环,枚举所有可能的硬币数量组合,判断是否能够兑换成一元人民币,如果可以,则输出当前的兑换方案。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)