#include <stdio.h>
// 硬币面额
int coins[] = {1, 5, 10, 25}; // 假设有四种硬币,面值为 1 分、5 分、10 分和 25 分
// 贪心算法求解找零问题
void makeChange(int amount) {
int n = sizeof(coins) / sizeof(coins[0]);
int count[n]; // 每种硬币的数量
for (int i = n - 1; i >= 0; i--) {
count[i] = amount / coins[i]; // 计算当前面额硬币的数量
amount = amount % coins[i]; // 更新剩余金额
}
// 输出找零结果
printf("需要的最少硬币数量:\n");
for (int i = n - 1; i >= 0; i--) {
if (count[i] > 0) {
printf("%d 分硬币: %d\n", coins[i], count[i]);
}
}
}
int main() {
int amount = 93; // 需要找零的金额
printf("使用贪心算法找零 %d 分的硬币:\n", amount);
makeChange(amount);
return 0;
}