NYOJ-A+B-513(大数)
发布时间:2020-12-14 04:02:47 所属栏目:大数据 来源:网络整理
导读:题目513 题目信息 运行结果 本题排行 讨论区 A+B Problem IV 时间限制: 1000 ? ms ?|? 内存限制: 65535 ? KB 难度: 3 描述 acmj最近发现在使用计算器计算高精度的大数加法时很不方便,于是他想着能不能写个程序把这个问题给解决了。 输入 包含多组测试数
A+B Problem IV
时间限制:
1000
?ms ?|? 内存限制:
65535
?KB
难度:
3
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; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |