题目描述
设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重<=1000)。
现在给你这六种砝码的数量,请你计算用这些砝码能称出的不同重量的个数,但不包括一个砝码也不用的情况。
如输入:1 1 0 0 0 0
输出:Total=3 表示可以称出1g,2g,3g三种不同的重量。
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n[]=new int[6];
for (int i = 0; i < 6; i++) {
n[i]=scanner.nextInt();
}
Set<Integer> set=new HashSet<>();
int ke[]={1,2,3,5,10,20};
for (int k = 0; k < 6; k++) {
for (int i = 0; i < n[k]; i++) {
Integer[] integers=new Integer[set.size()];
set.toArray(integers);
set.add(ke[k]);
for (int j = 0; j <integers.length; j++) {
set.add(integers[j]+ke[k]);
}
}
}
System.out.println("Total="+set.size());
}
}