public class Test {
public static void main(String[] args) {
HashSet<Object> set = new HashSet<>();
int i = 0;
while (true) {
++i;
String s = getStr();
if (sum(s) == 100) {
set.add(s);
}
if (set.size() == 11)break;
}
set.forEach(System.out.println);//遍历set集合
System.out.println(i);
}
public static String getStr() {
StringBuilder su = new StringBuilder("1");
String[] ps = {"", "+", "-"};
Random rand = new Random();
for (int i = 2; i <= 9; i++) {
su.append(String.format("%s%d", ps[rand.nextInt(ps.length)], i));
}
return su.toString();
}
public static int sum(String s) {
Pattern p = Pattern.compile("-?\\d+");
Matcher m = p.matcher(s);
int sum = 0;
while (m.find()) {
int n = Integer.parseInt(m.group());
sum += n;
}
return sum;
}
}
面试题2 求123456789 字符串1..9 之间不改数字位置随机+-要求表达结果和为100,写出这样表达式
最新推荐文章于 2024-08-18 21:36:31 发布