您当前的位置: 首页 >  Java

星拱北辰

暂无认证

  • 0浏览

    0关注

    1205博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

星拱北辰 发布时间:2020-03-13 16:26:52 ,浏览量:0

题目要求

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));
            }
        }
    }
}
关注
打赏
1660750074
查看更多评论
立即登录/注册

微信扫码登录

0.0457s