1 public class test
2 {
3 public static void main(String[] args)
4 {
5 Vector<Integer> v = new Vector<>();
6 v.add(1);
7 v.add(2);
8 v.add(5);
9 Vector<Integer> solution = new Vector<>();
10 Scanner input = new Scanner(System.in);
11 int dst = input.nextInt();
12 System.out.println(CoinsCombination(v, solution, 0, 0, dst));
13 input.close();
14 }
15
16 public static int CoinsCombination(Vector<Integer> v, Vector<Integer> solution, int start, int sum, int dst)
17 {
18 if(dst <= 0)
19 return 0;
20 if(sum == dst)
21 {
22 System.out.println(solution.toString());
23 return 1;
24 }
25 if(sum > dst)
26 return 0;
27
28 int count = 0;
29 for(int i = start; i < v.size(); i++)
30 {
31 solution.add(v.get(i));
32 sum += v.get(i);
33 count += CoinsCombination(v, solution, i, sum, dst);
34 solution.remove(solution.size() - 1);
35 sum -= v.get(i);
36 }
37
38 return count;
39 }
40 }
转载于:https://www.cnblogs.com/Huayra/p/10975470.html