您的位置:首页 > 其它

大数相加

2014-12-31 00:00 375 查看
大数相加

public class VeryBigNumAdd {

public static void main(String[] args) {
VeryBigNumAdd vbn = new VeryBigNumAdd();
String a = "123453243455535634535252345234677576252241234123523453664563634";
String b = "123453243455535634535252345234677576252241234123523453664563634";
String result = vbn.doAdd(a, b);
System.out.println("result:" + result);
}

String doAdd(String a, String b) {
String str = "";
int lenA = a.length();
int lenB = b.length();
int maxLen = (lenA > lenB) ? lenA : lenB;
int minLen = (lenA < lenB) ? lenA : lenB;
String strTmp = "";
for (int i = maxLen - minLen; i > 0; i--) {
strTmp += "0";
}
// 把长度调整到相同
if (maxLen == lenA) {
b = strTmp + b;
} else
a = strTmp + a;
int JW = 0;// 进位
for (int i = maxLen - 1; i >= 0; i--) {
int tempA = Integer.parseInt(String.valueOf(a.charAt(i)));
int tempB = Integer.parseInt(String.valueOf(b.charAt(i)));

int temp;
if (tempA + tempB + JW >= 10 && i != 0) {
temp = tempA + tempB + JW - 10;
JW = 1;
} else {
temp = tempA + tempB + JW;
JW = 0;
}
str = String.valueOf(temp) + str;
}
return str;
}
}
运行程序:
C:\bat>java  VeryBigNumAdd
result:246906486911071269070504690469355152504482468247046907329127268
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: