题目描述
某人有8 角的邮票5 张,1 元的邮票4 张,1 元8 角的邮票6 张,用这些邮票中的一张或若干张可以得到多少中不同的邮资?
输入描述:
无
输出描述:
输出一行,表示题目所求。
示例1
输入
复制
无
输出
复制
无
import java.util.*;
import java.io.*;
import java.math.*;
import java.text.* ;
public class Main
{
static int res = 0;
static int[] price = {8, 8, 8, 8, 8, 10, 10, 10, 10, 18, 18, 18, 18, 18, 18};
static HashSet<Integer> set = new HashSet<>();
public static void main(String[] args) {
backtrack(0, 0);
System.out.println(res-1);
}
public static void backtrack(int start, int sum) {
if(!set.contains(sum)) {
set.add(sum);
res++;
}
for(int i = start; i < 15; i++) {
backtrack(i+1, sum+price[i]);
}
}
}