#include <stdio.h>
void coin_change_greedy(int coins[], int n, int amount) {
// 将硬币面值按降序排列
// 这里假设输入的硬币面值已经是降序排列的
// 初始化结果数组
int result[100] = {0}; // 假设最多使用100个硬币
int count = 0;
// 遍历每个硬币面值
for (int i = 0; i < n; i++) {
// 只要当前硬币面值小于等于剩余金额,就使用该硬币
while (coins[i] <= amount) {
result[count++] = coins[i];
amount -= coins[i];
}
}
// 如果最终金额为0,说明找零成功,输出结果
if (amount == 0) {
printf("找零的硬币为: ");
for (int i = 0; i < count; i++) {
printf("%d ", result[i]);
}
printf("\n");
} else {
// 否则说明无法找零
printf("无法找零\n");
}
}
int main() {
int coins[] = {25, 10, 5, 1};
int amount = 63;
int n = sizeof(coins) / sizeof(coins[0]);
coin_change_greedy(coins, n, amount);
return 0;
}