NYOJ-A+B-513(大数)

来源:互联网 发布:知乎娱乐圈猛料2017 编辑:程序博客网 时间:2024/05/18 17:40

A+B Problem IV

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
描述
acmj最近发现在使用计算器计算高精度的大数加法时很不方便,于是他想着能不能写个程序把这个问题给解决了。
输入
包含多组测试数据
每组数据包含两个正数A,B(可能为小数且位数不大于400)
输出
每组输出数据占一行,输出A+B的结果,结果需要是最简的形式。
样例输入
1.9 0.10.1 0.91.23 2.13 4.0
样例输出
213.337
来源
hdu
上传者
路过这


java写大数太简单了,不过要注意输出哈!


import java.util.*;import java.math.*;public class Main {    public static void main(String[] argc){        Scanner cin=new Scanner(System.in);        BigDecimal a,b,ans;        while(cin.hasNext())        {            a=cin.nextBigDecimal();            b=cin.nextBigDecimal();            ans=a.add(b);            if (ans.compareTo(BigDecimal.ZERO)==0)                 System.out.println("0");            else                 System.out.println(ans.stripTrailingZeros().toPlainString());        }                    }            }     


import java.math.BigDecimal;import java.util.Scanner;public class A_B {public static void main(String[] args) {Scanner scan=new Scanner(System.in); while(scan.hasNext()){/*String str1 = scan.next();String str2 = scan.next();boolean flag1=false;boolean flag2=false;int str11,str22;for(i=0,j=0;i<str1.length()||j<str2.length();i++,j++){if(str1.charAt(i)=='.'){flag1=true;str11=i;}else{if(!flag1){str1=str1+".0";}}if(str2.charAt(j)=='.'){flag2=true;str22=j;}else{if(!flag2){str2=str2 + ".0";}}}for(){}*/ BigDecimal a = scan.nextBigDecimal(); BigDecimal b = scan.nextBigDecimal(); BigDecimal sum=a.add(b); String SUM = ZH(sum.toString());   System.out .println(SUM);  }}private static String ZH(String sum) {  int num=-1;  if(sum.indexOf('.')!=-1){// 如果发现  for(int i =sum.length()-1;i>0;i--){//indexof(),搜索不到时返回-1  if(sum.charAt(i)!='0'){  num=i+1;  break;  }  }  sum=sum.substring(0, num);  if(sum.endsWith(".")){//去’0‘后的‘.’也要去掉!  sum=sum.substring(0, sum.length()-1);  }  }return sum;}}


 


 

import java.math.BigDecimal;import java.util.Scanner;public class A_B{ public static void main(String[] args) {   Scanner scan= new Scanner(System.in);      while(scan.hasNext()){    BigDecimal a = scan.nextBigDecimal();    BigDecimal b = scan.nextBigDecimal();    BigDecimal sum=a.add(b);    String SUM=ZH(sum.toString());    System.out.println(SUM);               }    } private static String ZH(String sum) {  // TODO Auto-generated method stub  int num =0;  if(sum.indexOf('.')!=-1){    for(int i=sum.length()-1;i>0;i--)//不以i>=0结束!,至少得有个数吧    {     if(sum.charAt(i)!='0'){      num=i;      break;     }    }    sum=sum.substring(0, num+1);//substring截取问题,需要num+1        if(sum.endsWith(".")){//sum.endsWith,boolen类型          sum=sum.substring(0, sum.length()-1);    }  }  return sum; }}


 

原创粉丝点击