第十二届蓝桥杯省赛 Java 大学 B 组—砝码称重—满分百分题解
一、解题思路
1、解法一( Java )
解法思路:简单模拟
☝ArrayList
遍历 + HashSet
存储(去重)
伪代码如下:
/**
* @author Listen 1024
* @description 第十二届蓝桥杯省赛 Java 大学 B 组—砝码称重—满分百分题解
* @date 2022-4-1 22:15:57
*/
import static java.lang.System.in;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(in);
int len = scanner.nextInt();
HashSet<Integer> set = new HashSet<Integer>();
set.add(scanner.nextInt());
for (int i = 0; i < len - 1; i++) {
int res = scanner.nextInt();
List<Integer> list = new ArrayList<Integer>(set);
for (Integer ans : list) {
set.add(res);
set.add(ans + res);
if (Math.abs(res - ans) != 0) {
set.add(Math.abs(res - ans));
}
}
}
System.out.println(set.size());
}
}
运行结果截图如下: