uva-465(overflow)
生活随笔
收集整理的這篇文章主要介紹了
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 既 0x7ffffffwhile(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 > bd3System.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(); ///關閉流,只是養成好習慣吧。。。 } }?
轉載于:https://www.cnblogs.com/ya-cpp/p/4030013.html
總結
以上是生活随笔為你收集整理的uva-465(overflow)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOS 6.5安装使用docker
- 下一篇: [再寄小读者之数学篇](2014-11-