
cpp
#include <iostream>
using namespace std;
#define N 7
int counts[N] = { 3, 2, 0, 3 ,2 ,0 , 1 };
int value[N] = { 1, 2, 5, 10, 20, 50, 100 };
int cot[N] = { 0, 0, 0, 0 ,0 ,0 , 0 };
int solve(int money) {
int num = 0; //支付了几张纸币
int i = 0;
for (i = N - 1; i >= 0; i--) {
int j = money / value[i]; //对应的纸币要给几张
//有这么多给对应的钱,没有那些有多少给多少
int c = j > counts[i] ? counts[i] : j;
cout << "需要面值" << value[i] << "的纸币" << c << "张" << endl;
money -= c * value[i]; //还剩多少要给
num += c;
if (money == 0) { break; }
}
if (money > 0) { num = -1; } //不能完全支付
return num;
}
int main() {
int money = 0;
int num = 0;
cout << "请输入要支付的数目:\n";
cin >> money;
num = solve(money);
if (num == -1) {
cout << "支付失败!" << endl;
}
else {
cout << "成功支付款项:" << num << endl;
}
system("pause");
return 0;
}