C++难度 单个测试集评测时长限制:3秒 将n元换成用若干10元、5元和1元的组合,共有多少种组合方法。(n大于等于1)样例输入:1样例输出:1
时间: 2024-02-05 12:13:42 浏览: 113
以下是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)$,可以通过本题。
阅读全文