题解 | #高精度整数加法#
高精度整数加法
https://www.nowcoder.com/practice/49e772ab08994a96980f9618892e55b6
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextLine()) {
String s1 = in.nextLine();
String s2 = in.nextLine();
int delta = s1.length() - s2.length();
StringBuffer sb1 = new StringBuffer(s1).reverse();
StringBuffer sb2 = new StringBuffer(s2).reverse();
if (delta < 0) {
for (int i = 0 ; i < Math.abs(delta) ; ++i) {
sb1.append('0');
}
} else if (delta > 0) {
for (int i = 0 ; i < delta ; ++i) {
sb2.append('0');
}
}
sb1 = sb1.reverse();
sb2 = sb2.reverse();
//System.out.println(sb1);
//System.out.println(sb2);
int jinwei = 0;
//StringBuilder sb = new StringBuilder();
for (int i = sb1.length()-1 ; i >=0 ; --i) {
int a = Integer.valueOf(sb1.charAt(i) + "");
int b = Integer.valueOf(sb2.charAt(i) + "");
if (a + b + jinwei >= 10) {
sb1.setCharAt(i, (char)(a + b - 10 + '0' + jinwei));
jinwei = 1;
} else {
sb1.setCharAt(i, (char)(a + b + '0' + jinwei));
jinwei = 0;
}
}
if (jinwei == 1) {
sb1 = sb1.reverse().append('1').reverse();
}
System.out.println(sb1.toString());
}
}
}
