编辑代码

#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;
}