public static void main(String[] args) { //在1-9之间任意添加+或-使其和等于100 //定义计算工具 String[] tools=new String[]{"","+","-"}; //将数据重新排列 Random rand=new Random(); Set<String> set=new HashSet(); StringBuilder sb = new StringBuilder("1"); while(set.size()<3) { for (int i = 2; i < 9; i++) { sb.append(tools[rand.nextInt(3)]); sb.append(i); } sb.append(9); //System.out.println(sb); int sum = 0; Pattern pattern = Pattern.compile("[+-]?\\d+"); Matcher m = pattern.matcher(sb); while (m.find()) { int a = Integer.parseInt(m.group()); sum = sum + a; } if (sum == 100) { set.add(sb.toString()); sb.delete(0,sb.length()); sb.append(1); }else{ sb.delete(0,sb.length()); sb.append(1); } } for(String i:set){ System.out.println(i); } }
在while(set.size()<5)中通过·设置set.size()的大小控制要输出多少种最多11种