用c++编写程序:将一面额为10元倍数的整钱(<=100元)换成1元、2元和5元的零钱组合(每种面值都要有)。输入要换的面额(如10元),输出所有可能的换法(如2种)。
时间: 2024-01-16 14:03:48 浏览: 27
好的,这是一个比较简单的问题,以下是C++的代码实现:
```cpp
#include <iostream>
using namespace std;
int main() {
int n;
cout << "请输入要换的面额:";
cin >> n;
if (n % 10 != 0 || n > 100) {
cout << "输入错误,面额必须是10的倍数且小于等于100。" << endl;
return 0;
}
int count = 0;
for (int i = 0; i <= n / 5; i++) {
for (int j = 0; j <= n / 2; j++) {
int k = n - i * 5 - j * 2;
if (k >= 0 && k % 1 == 0) {
count++;
cout << "第" << count << "种换法:";
cout << i << "张5元," << j << "张2元," << k << "张1元。" << endl;
}
}
}
cout << "一共有" << count << "种换法。" << endl;
return 0;
}
```
以上代码中,我们首先输入要换的面额,然后判断是否符合条件(即10的倍数且小于等于100),然后使用两层循环分别枚举5元和2元的张数,再根据总面额计算出1元的张数,最后输出所有可能的换法和总数。