import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); char[] numChar1 = reverseArray(sc.nextLine().toCharArray()); char[] numChar2 = reverseArray(sc.nextLine().toCharArray()); int maxLength = Math.max(numChar1.length, numChar2.length); char[] resultCharArr = new char[maxLength + 1]; boolean isCarryBit = false; // 记录是否进位 for (int i = 0; i < maxLength; i++) { int result; if (numChar1.length != numChar2.length && numChar1.length <= i) { result = numChar2[i] - '0'; } else if (numChar1.length != numChar2.length && numChar2.length <= i) { result = numChar1[i] - '0'; } else { int num1 = numChar1[i] - '0'; int num2 = numChar2[i] - '0'; result = num1 + num2; } // 处理前一位的进位 if (isCarryBit) { result += 1; isCarryBit = false; } // 处理本位的进位 if (result >= 10) { isCarryBit = true; resultCharArr[i] = (char) (result % 10 + '0'); } else { resultCharArr[i] = (char) (result + '0'); } } // 两数相加多出一位的情况 if (isCarryBit) { resultCharArr[maxLength] = '1'; } // 输出结果 resultCharArr = reverseArray(resultCharArr); for (int i = 0; i < resultCharArr.length; i++) { if (resultCharArr[i] == '\u0000') continue; System.out.print(resultCharArr[i]); } } /** * 数组反转 * @param charArr * @return */ public static char[] reverseArray(char[] charArr) { char[] result = new char[charArr.length]; for (int i = 0; i < charArr.length; i++) { result[i] = charArr[charArr.length - 1 - i]; } return result; } }