用c语言写下代码
时间: 2024-01-18 22:01:49 浏览: 28
以下是使用C语言实现的最少硬币问题的贪心算法代码:
```c
#include <stdio.h>
void coinChange(int coins[], int n, int amount) {
int i, count = 0;
// 对硬币面额从大到小排序
for (i = n - 1; i >= 0; i--) {
// 每次选择能用的最大面额的硬币
while (amount >= coins[i]) {
// 凑出一个硬币后,将需要凑的金额减去该硬币面额
amount -= coins[i];
// 记录已经选取的硬币数量
count++;
}
}
printf("最少需要%d个硬币\n", count);
}
int main() {
int coins[] = {1, 5, 10, 25};
int n = sizeof(coins) / sizeof(coins[0]);
int amount = 36;
coinChange(coins, n, amount);
return 0;
}
```
在该代码中,我们定义了一个函数coinChange来实现最少硬币问题的贪心算法。在主函数中,我们定义了硬币面额和需要凑的金额,并将它们传递给coinChange函数。在coinChange函数中,我们使用while循环来选择当前能用的最大面额的硬币,直到凑出所需金额为止。每次选择一个硬币后,我们将需要凑的金额减去该硬币面额,并将记录已经选取的硬币数量。最后,我们输出最少需要的硬币数量。