# 背包问题求方案数

有 1 分,2 分,5 分,10 分四种硬币,每种硬币数量无限,给定 n 分钱(n <= 100000),有多少中组合可以组成 n 分钱?

输入例子1:
13

输出例子1:
16
1
2
3
4
5

算法思想:将状态由最大价值改为方案数

# 518. 零钱兑换 II (opens new window)

求兑换的方案数

class Solution {
    public int change(int V, int[] c) {
        int dp[] = new int[V+1];
        dp[0] = 1;

        for (int x : c){
            for (int v = x; v <=V; v++ ){
                dp[v] += dp[v-x];
            }
        }
        return dp[V];
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13