package zuoye;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
//求123456789 字符串1..9 之间不改数字位置随机+-要求表达结果和为100,写出这样表达式
public class Demo1801 {
public static void main(String[] args) {
/* for (int i = 0; i < 10; i++) {
String str = getstr();
int sum = getsum(str);
System.out.println(str + "=" + sum);
}*/
//while死循环,直到找到和为一百的退出循环,同时看一共几次才找到和为100的式子
int n = 0;
while (true) {
++n;
String str = getstr();
int sum = getsum(str);
if (sum == 100) {
System.out.println(n);
System.out.println(str + "=" + sum);
break;
}
}
}
//这个方法得到1到9的表达式
static String getstr() {
StringBuilder sb = new StringBuilder("1");
String[] op = {"+", "-", ""};
Random rd = new Random();
for (int i = 2; i < 10; i++) {
sb.append(op[rd.nextInt(op.length)]).append(i);
}
return sb.toString();
}
这个方法得到表达式的和
static int getsum(String str) {
Pattern pt = Pattern.compile("-?\\d+");
Matcher m = pt.matcher(str);
int sum = 0;
while (m.find()) {
int number = Integer.parseInt(m.group());
sum += number;
}
return sum;
}
}
Java 求123456789 字符串1..9 之间不改数字位置随机+-要求表达结果和为100,写出这样表达式
最新推荐文章于 2024-08-23 15:54:50 发布