最少硬币问题,直接给C语言代码
时间: 2024-04-30 20:24:03 浏览: 12
这是一个解决最少硬币问题的C语言代码:
```
#include <stdio.h>
int countCoins(int coins[], int n, int amount) {
int dp[amount+1];
dp[0] = 0;
for (int i = 1; i <= amount; i++) {
dp[i] = INT_MAX;
for (int j = 0; j < n; j++) {
if (i >= coins[j] && dp[i-coins[j]] != INT_MAX && dp[i-coins[j]] + 1 < dp[i]) {
dp[i] = dp[i-coins[j]] + 1;
}
}
}
return dp[amount] == INT_MAX ? -1 : dp[amount];
}
int main() {
int coins[] = {1, 5, 10, 50};
int n = sizeof(coins)/sizeof(coins[0]);
int amount = 62;
int result = countCoins(coins, n, amount);
printf("Minimum number of coins required: %d", result);
return 0;
}
```
该代码可以计算在给定数量的硬币中使用最少的硬币来凑出某个金额。