日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 加法 溢出_java实现两个大数相加,可能出现溢出错误

發布時間:2024/10/6 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 加法 溢出_java实现两个大数相加,可能出现溢出错误 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java實現兩個大數相加,可能存在溢出,如123456789 + 987654321 返回 1111111110

用BigInteger 三行就完事啊。 不用這個類也可以實現

public BigInteger plus(String str1,String str2)

{

BigInteger var1=new BigInteger(str1);

BigInteger var2=new BigInteger(str2);

BigInteger result=var1.add(var2);

//輸出結果;

System.out.println(result);

return var1.add(var2);

}

或者老老實實地進位相加。

public static String add(String data1,String data2){

int len1 = data1.length();

int len2 = data2.length();

int len = len1>len2?len1:len2; //得到最大長度,方便補齊

while(len1++ < len){

data1 = "0" + data1;

}

while(len2++ < len){

data2 = "0" + data2;

}

int arr[] = new int[len];

for(int i=0;i

arr[i] = data1.charAt(i) - '0' + data2.charAt(i) - '0' ; //利用字符進行加法運算

}

for(int i=len-1;i>0;i--){

int jinWei = arr[i]/10; //進位

arr[i] = arr[i]%10;

arr[i-1] = arr[i-1] + jinWei; //進到前面一位

}

StringBuffer sb = new StringBuffer();

if(arr[0]>=10){ //處理第一位情況

sb.append(arr[0]/10);

sb.append(arr[0]%10);

}else{

sb.append(arr[0]);

}

for(int i=1;i

sb.append(arr[i]);

}

return sb.toString();

}

總結

以上是生活随笔為你收集整理的java 加法 溢出_java实现两个大数相加,可能出现溢出错误的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。