import java.util.Scanner;
//大数相加:
//用两个字符串,n1, n2 表示我们要加的大数
//思路:先将两字符串位数补对齐,然后反转两个字符串
//按位相加
//再反转
public class BigNumber {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// String num1 = sc.next();
// String num2 = sc.next();
sc.close();
//测试
String res = bigIntAdd("123456789987654321","987654321123456789");// == 111111111111111110
System.out.println(res);
}
public static String bigIntAdd(String num1, String num2){
String n1 = new StringBuffer(num1).reverse().toString();
String n2 = new StringBuffer(num2).reverse().toString();
int len1 = n1.length();
int len2 = n2.length();
int maxLen = Math.max(len1, len2);
while (len1 < maxLen){
n1 += "0";
len1++;
}
while (len2 < maxLen){
n2 += "0";
len2++;
}
StringBuffer res = new StringBuffer();
int c = 0;
//开始相加
for(int i = 0; i < maxLen; i++){
int ans = Integer.parseInt(n1.charAt(i)+"") + Integer.parseInt(n2.charAt(i)+"") + c;
int ap = ans % 10;
res.append(ap);
c = ans / 10;
}
//注意,如果最后带有进位
if(c != 0){
res.append(c);
}
//得到结果
return res.reverse().toString();
}
}
JAVA使用字符串求大整数相加的结果
最新推荐文章于 2023-04-26 21:25:47 发布