编辑代码

#include <stdio.h>

int max(int a, int b) {
    return (a > b) ? a : b;
}

int maxCoinValue(int coins[], int values[], int num_coins, int target) {
    int dp[target + 1];
    dp[0] = 0;

    for (int i = 1; i <= target; i++) {
        dp[i] = 0;
        for (int j = 0; j < num_coins; j++) {
            if (i >= coins[j]) {
                dp[i] = max(dp[i], dp[i - coins[j]] + values[j]);
            }
        }
    }

    return dp[target];
}

int main() {
    int coins[] = {1, 3, 5};
    int values[] = {2, 4, 6};
    int num_coins = sizeof(coins) / sizeof(coins[0]);
    int target = 11;

    int result = maxCoinValue(coins, values, num_coins, target);

    printf("最大硬币收集价值: %d\n", result);

    return 0;
}