一个经典的贪心算法实例是找零钱问题,这也是C语言中一个非常常见的贪心算法实现。找零钱问题是指给定一些硬币和需要找的零钱数,每次选择面值最大的硬币,直到找完所有的零钱。
以下是一个简单的C语言实现:
#include <stdio.h>
#include <stdlib.h>
int main() {
int coins[] = { 25, 10, 5, 1 };
int amount = 67;
int num_coins = sizeof(coins) / sizeof(coins[0]);
int i, count = 0;
for (i = num_coins - 1; i >= 0; i--) {
while (amount >= coins[i]) {
amount -= coins[i];
count++;
}
}
printf("coins used: %d\n", count);
return 0;
}
这个程序首先定义了一组硬币面值和需要找的零钱数。然后,通过循环遍历硬币面值,从大到小依次减去面值,直到零钱数减为0。在每次循环中,计算使用的硬币数量,最后输出总数。