方程求解(洛谷P1689题题解,Java语言描述)

题目要求

P1689题目链接

在这里插入图片描述

分析

是一个小的模拟题,可以穷举情况并得到答案。

共有六种可能:

  • A + B = X A+B=X X = A + B X=A+B
  • A + X = B A+X=B X = B A X=B-A
  • X + A = B X+A=B X = B A X=B-A
  • A B = X A-B=X X = A B X=A-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

化简以后就得到了最终情况,只需要分析到各种情况,并输出结果即可。

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));
            }
        }
    }
}
发布了700 篇原创文章 · 获赞 1489 · 访问量 67万+

猜你喜欢

转载自blog.csdn.net/weixin_43896318/article/details/104843744