OJ------超长整数相加

输入两个超长整数,求其运算结果
输入样例:999999999  1(string类型)
输出样例:1000000000
方法一:
API  new BigInteger().add();
方法二:个各位依次求解
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
String s1=sc.next();
String s2=sc.next();
out(s1,s2);
}
sc.close();
}
public static void out(String s1,String s2){
    StringBuffer sb1=new StringBuffer(s1);
      StringBuffer sb2=new StringBuffer(s2);
     StringBuffer res=new StringBuffer();
    String ss1=sb1.reverse().toString();
    String ss2=sb2.reverse().toString();
char[] arr1=ss1.toCharArray();
char[] arr2=ss2.toCharArray(); 
//为了防止脚标越界,分出较长数组,和较短数组
if(arr1.length>arr2.length){
	char[] t=arr1;
	arr1=arr2;//min 
	arr2=t;//max
}
//int maxindex=arr1.length>arr2.length?arr1.length:arr2.length;
//int minindex=arr1.length>arr2.length?arr2.length:arr1.length;
int k=0;// 向前进的数
int result=0;
for(int i=0;i<arr1.length;i++){
	
int k1=Integer.parseInt(arr1[i]+"");
int k2=Integer.parseInt(arr2[i]+"");
int sum=k1+k2+k;
result=sum%10;
k=sum/10;
res.append(result);
}
for(int i=arr1.length;i<arr2.length;i++){
	int k2=Integer.parseInt(arr2[i]+"");
	int sum=k2+k;
	result=sum%10;
	k=sum/10;
	res.append(result);
	
}
if(k!=0){//最后的K有可能为0
	res.append(k);
}

    System.out.print(res.reverse().toString());
}}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值