您当前的位置: 首页 >  Java

星拱北辰

暂无认证

  • 0浏览

    0关注

    1205博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

解一元一次方程的那些坑(记洛谷P1022题RE的经历,Java语言描述)

星拱北辰 发布时间:2019-12-26 21:30:59 ,浏览量:0

题目要求

P1022题目链接

在这里插入图片描述 在这里插入图片描述

分析

其实就是拿过来一个一元一次方程然后求解。。。

问题是,坑是真多。。下面分享几个。。。。

  • 首先是你得处理符号,因为比如说“-”即是减号也是负号,“+”只代表加号(我们不会在正数前面加+)。
  • 接下来你要注意怎么去split到数据,如果你不想逐个处理,可以分治,先按照“=”切分为左右两部分字符串,然后左右分别按照“+”或者“-”切分。(正则为“[+]|[-]”
  • 然后你得注意开头的符号要消去,不要直接split导致出现"",这是糟糕的情况,会RE。(比如“-2x+2=3”)
  • 还有就是你得知道:-0.0000000000001这样的数在截出来以后是-0.000,这不能被OJ接收。。。
  • 接着上面一条说,另外非常恶心的是,-0.0/2得到的是-0.000(保留三位小数),这个-0.000其实按照我们补码理论是不存在的,它的存在就很恶心,在jshell里测试的时候就是与0.000相等的(包括与0相等)。其实一样,但你放OJ里就gg了,是不行的。。。
  • ……
第四次提交——AC

写的比较冗长,不是很好。。也没抽出来函数,直接main到底、。。。。

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String expression = scanner.nextLine();
        scanner.close();
        //未知变量的表示(小写字母)
        char x = 'x';
        for (char c : expression.toCharArray()) {
            if (c >= 'a' && c  -0.0005 && result = 'a' && c             
关注
打赏
1660750074
查看更多评论
0.0786s