题解 | #称砝码#
称砝码
http://www.nowcoder.com/practice/f9a4c19050fc477e9e27eb75f3bfd49c
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();//存入的个数
//确保不会出现重复的重量
HashSet set = new HashSet<>();
//确保不会重复存入砝码的重量
ArrayList num = new ArrayList<>();
//确保不会重复存入砝码的质量
ArrayList num1 = new ArrayList<>();
//存入0这个重量
set.add(0);
//存入砝码的个数
for(int i = 0;i < n;i++){
int m = sc.nextInt();
num.add(m);
}
//存入砝码的重量
for(int i = 0;i < n;i++){
int n2 = sc.nextInt();
num1.add(n2);
}
//一个个遍历砝码
for(int i = 0;i < n;i++){
ArrayList num2 = new ArrayList<>(set);//得到所有的结果
//遍历所有的结果
for(Integer integer : num2){
//一个一个砝码去试
for(int j = 1; j <= num1.get(i);j++){
//存入每个砝码的重量
set.add(integer + num.get(i) * j);
}
}
}
//得到所有不重复的质量个数
System.out.println(set.size());
}
}