题目要求
P1689题目链接
是一个小的模拟题,可以穷举情况并得到答案。
共有六种可能:
- A + B = X A+B=X A+B=X → X = A + B X=A+B X=A+B
- A + X = B A+X=B A+X=B → X = B − A X=B-A X=B−A
- X + A = B X+A=B X+A=B → X = B − A X=B-A X=B−A
- A − B = X A-B=X A−B=X → X = A − B X=A-B X=A−B
- A − X = B A-X=B A−X=B → X = A − B X=A-B X=A−B
- X − A = B X-A=B X−A=B → X = A + B X=A+B X=A+B
化简以后就得到了最终情况,只需要分析到各种情况,并输出结果即可。
AC代码(Java语言描述)import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String formula = scanner.nextLine().replaceAll("\\s+", "");
scanner.close();
String a, b, c;
int index1, index2 = formula.indexOf("=");
if (formula.contains("+")) {
index1 = formula.indexOf("+");
a = formula.substring(0, index1);
b = formula.substring(index1+1, index2);
c = formula.substring(index2+1);
if ("?".equals(c)) {
System.out.println(Integer.parseInt(a) + Integer.parseInt(b));
} else {
System.out.println(Integer.parseInt(c) - Integer.parseInt(("?".equals(a)) ? b : a));
}
} else {
index1 = formula.indexOf("-");
a = formula.substring(0, index1);
b = formula.substring(index1+1, index2);
c = formula.substring(index2+1);
if ("?".equals(a)) {
System.out.println(Integer.parseInt(b) + Integer.parseInt(c));
} else {
System.out.println(Integer.parseInt(a) - Integer.parseInt(("?".equals(c)) ? b : c));
}
}
}
}