题目描述:
你有一架天平和 N 个砝码,这 N 个砝码重量依次是 W1, W2, · · · , WN。
请你计算一共可以称出多少种不同的重量?
注意砝码可以放在天平两边。
代码:
package lanqiao;
import java.util.*;
public class Main {
static long mod = 123456789;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
Set<Integer> set = new HashSet<>();
int[] w = new int[n + 1];
for(int i = 1;i <= n;i ++)
{
w[i] = sc.nextInt();
}
set.add(0);
for(int i = 1;i <= n;i ++)
{
List<Integer> list = new ArrayList<>(set);
for(int k : list)
{
// System.out.println(k);
set.add(k + w[i]);
set.add(Math.abs(k - w[i]));
}
}
set.remove((Object)0);
System.out.println(set.size());
}
}