Files
python/C++专题课程/动态规划/分硬币问题/TestProject/1_zhaolingqian.cpp
HuangHai 1f397eca87 'commit'
2025-08-30 18:35:01 +08:00

49 lines
1.1 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include <iostream>
using namespace std;
//一分
#define ONEFEN 1
//五分
#define FIVEFEN 5
//十分
#define TENFEN 10
//二十五分
#define TWENTYFINEFEN 25
//分硬币问题使用贪心策略是存在问题的,因为参考:
// https://mp.weixin.qq.com/s/978Tdplj3IaSG2dc-5F-aw
// 现在问题变了,还是需要找给顾客41分钱,现在的货币只有 25 分、20分、10 分、5 分和 1 分四种硬币;该怎么办?
int main() {
//总和41
int sum_money = 41;
//每个多少个?
int num_25 = 0, num_10 = 0, num_5 = 0, num_1 = 0;
//不断尝试每一种硬币
while (sum_money >= TWENTYFINEFEN) {
num_25++;
sum_money -= TWENTYFINEFEN;
}
while (sum_money >= TENFEN) {
num_10++;
sum_money -= TENFEN;
}
while (sum_money >= FIVEFEN) {
num_5++;
sum_money -= FIVEFEN;
}
while (sum_money >= ONEFEN) {
num_1++;
sum_money -= ONEFEN;
}
//输出结果
cout << "25分硬币数:" << num_25 << endl;
cout << "10分硬币数:" << num_10 << endl;
cout << "5分硬币数:" << num_5 << endl;
cout << "1分硬币数:" << num_1 << endl;
return 0;
}