#include <stdio.h>
int min(int a, int b) {
return a < b ? a : b;
}
int coinCollect(int coins[], int n, int v) {
int dp[v + 1];
dp[0] = 0;
for (int i = 1; i <= v; i++) {
dp[i] = 999999; // 初始化为一个极大值
for (int j = 0; j < n; j++) {
if (coins[j] <= i) {
dp[i] = min(dp[i], dp[i - coins[j]] + 1);
}
}
}
return dp[v];
}
int main() {
int coins[] = {1, 5, 10, 25};
int n = sizeof(coins) / sizeof(coins[0]);
int v = 36;
int ans = coinCollect(coins, n, v);
printf("最少需要收集 %d 枚硬币\n", ans);
return 0;
}