加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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
描述
acmj最近发现在使用计算器计算高精度的大数加法时很不方便,于是他想着能不能写个程序把这个问题给解决了。
输入
包含多组测试数据
每组数据包含两个正数A,B(可能为小数且位数不大于400)
输出
每组输出数据占一行,输出A+B的结果,结果需要是最简的形式。
样例输入
1.9 0.1
0.1 0.9
1.23 2.1
3 4.0
样例输出
2
1
3.33
7
来源
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;
 }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读