java过大的整数加L_超大整数相加java算法

packagecom.test;importjava.sql.Timestamp;importjava.text.ParseException;public classBigMathAdd {public static void main(String[] args) throwsParseException{

String addA="999999999999999999999999999999999999999999999";

String addB="9";

System.out.println(newTimestamp(System.currentTimeMillis()));

System.out.println(addA+"+"+addB+"="+strvalue(addA,addB));

System.out.println(9999+99);

System.out.println(newTimestamp(System.currentTimeMillis()));

}public staticString strvalue(String addA,String addB){

String strvalue="";int lenA=addA.length();int lenB=addB.length();int templen=0;//调整长度相同

if(lenA>=lenB){

templen=lenA-lenB;

addB=maxlen(addB,templen);

}else{

templen=lenB-lenA;

addA=maxlen(addA,templen);

}char addcharA[]=addA.toCharArray();char addcharB[]=addB.toCharArray();int len=addcharA.length;int valueC[]=new int[len];for(int i=0;i

valueC[i]=a+b;

}//每项相加存储

int tmp=0;//处理进位

for(int i=valueC.length-1;i>=0;i--){if(valueC[i]+tmp>=10){

strvalue=String.valueOf(valueC[i]+tmp-10)+strvalue;

tmp=(valueC[i]+tmp)/10;

}else{

strvalue=String.valueOf(valueC[i]+tmp)+strvalue;

tmp=0;

}

}if(tmp!=0){

strvalue= String.valueOf(tmp)+strvalue;

}

if(strvalue.charAt(0)=='0'){

strvalue = MatchParen(strvalue); //去掉前面的0

}returnstrvalue;

}//调整长度,使其长度一样

private static String maxlen(String str,inttemplen){

String strmax=null;

StringBuffer buff=newStringBuffer();for(int i=0;i

buff.append("0");

}

strmax=buff.toString()+str;returnstrmax;

}

}

private static String MatchParen(String s){

Pattern patthern =  Pattern.compile("^0*");

Matcher match = patthern.matcher(s);

System.out.println(match.find());

s = match.replaceAll("");

return s;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值