• uva-465(overflow)


    这道题很奇葩啊,WA了4发。。。妈的,用c++也不至于,输出竟然要原样输出。。。

    例如:

      0000000000000000006 * 000000000000001

      输出是 0000000000000000006 * 000000000000001

      而不是 6 * 1

    import java.io.*;
    import java.util.*;
    import java.math.*;
    
    public class Overflow {
        public static void main(String[] args){
            Scanner sc = new Scanner(new BufferedInputStream(System.in));
            BigDecimal bd1, bd2, bd3, ans;
            String st1;                                                                                 
            bd3 = new BigDecimal("2147483647");   ///int 4位  -2147483648 ~ 2147483647 既 0x7ffffff
            while(sc.hasNextLine()){
                st1 = new String(sc.nextLine());
                System.out.println(st1);          ///原样输出。。。
                String[] str= st1.split("[\+\*]"); ///正则表达式,明天再写  split() 字符串分割方法
                
                int i = 0, len = st1.length();
                boolean flag = false;
                while(i < len){
                    if((st1.charAt(i)) == '+'){  //String类中用于获取每一个字符的方法
                        flag = true;
                    }
                    i++;
                }
                bd1 = new BigDecimal(str[0].trim());  ///trim()方法,用于清空空格
                bd2 = new BigDecimal(str[1].trim());
                if(flag == true){
                    ans = bd1.add(bd2);
                }else{
                    ans = bd1.multiply(bd2);
                }
                    
                if(bd1.compareTo(bd3) > 0){                       ///compareTo()方法,用于比较两个对象间的大小, 返回 大于0 相当于  bd1 > bd3
                    System.out.println("first number too big");
                }
                if(bd2.compareTo(bd3) > 0){
                    System.out.println("second number too big");
                }
                if(ans.compareTo(bd3) > 0){
                    System.out.println("result too big");
                }
            }
            sc.close();                            ///关闭流,只是养成好习惯吧。。。  
        }
    }
  • 相关阅读:
    [LeetCode]Subsets II
    [LeetCode]Subsets
    [LeetCode]Combinations
    [LeetCode]Minimum Window Substring
    [LeetCode]Search a 2D Matrix
    [LeetCode]Edit Distance
    [LeetCode]Simplify Path
    Adaboost算法
    [LeetCode]Text Justification
    31、剑指offer--从1到n整数中1出现次数
  • 原文地址:https://www.cnblogs.com/ya-cpp/p/4030013.html
Copyright © 2020-2023  润新知