C++将n元换成用若干10元、5元和1元的组合的代码
时间: 2023-09-10 19:07:39 浏览: 149
以下是将n元换成用若干10元、5元和1元的组合的C++代码:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
cout << "请输入要换成的金额:";
cin >> n;
int num_10 = n / 10; // 计算需要多少个10元
int num_5 = (n - num_10 * 10) / 5; // 计算需要多少个5元
int num_1 = n - num_10 * 10 - num_5 * 5; // 计算需要多少个1元
// 输出结果
cout << "需要" << num_10 << "个10元," << num_5 << "个5元," << num_1 << "个1元。" << endl;
return 0;
}
```
该代码首先读取用户输入的要换成的金额n,然后根据10元、5元和1元的面值计算需要多少个10元、5元和1元,最后输出结果。
相关问题
C++将n元换成用若干10元、5元和1元的组合,共有多少种组合方法。代码
以下是一个使用动态规划的C++代码,时间复杂度为O(n)。
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> dp(n+1, 0); // dp[i]表示i元的换取方法数
dp[0] = 1; // 初始值
for (int i = 1; i <= n; i++) {
for (int j = i; j >= 0; j--) { // 从大到小更新dp[i]
dp[i] += dp[j]; // j元的换取方法数对i元的换取方法数有贡献
if (j >= 10) dp[i] += dp[j-10];
if (j >= 5) dp[i] += dp[j-5];
}
}
cout << dp[n] << endl;
return 0;
}
```
具体解释可以看注释。
C++难度 单个测试集评测时长限制:3秒 将n元换成用若干10元、5元和1元的组合,共有多少种组合方法。(n大于等于1)样例输入:1样例输出:1
以下是C++的代码实现:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int count = 0; // 统计方案数
for (int i = 0; i <= n / 10; i++) { // 枚举使用的10元纸币数量
for (int j = 0; j <= (n - i * 10) / 5; j++) { // 枚举使用的5元纸币数量
count++; // 使用剩下的都是1元纸币,方案数加1
}
}
cout << count << endl;
return 0;
}
```
思路解析:
题目要求将 n 元换成用若干 10 元、5 元和 1 元的组合,共有多少种组合方法。
我们可以使用两个循环枚举使用的 10 元和 5 元的数量,然后剩下的就都是 1 元的了。每次使用一个 10 元或者 5 元纸币,就相当于减少了 10 元或者 5 元的面值,剩下的用 1 元纸币凑齐。最后统计方案数即可。
时间复杂度为 $O(n^2)$,可以通过本题。