题目描述
高精度加法,相当于a+b problem,不用考虑负数.
输入格式
分两行输入。a,b <= 10的500次方
输出格式
输出只有一行,代表a+b的值
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
public class Main {
public static String add(String a,String b) {
int len1=a.length();
int len2=b.length();
// 使长度相等
if(len1>len2) {
for(int i=0;i<len1-len2;i++) {
b='0'+b;
}
}else if(len1<len2) {
for(int i=0;i<len2-len1;i++) {
a='0'+a;
}
}
len1=a.length();
int carry=0; //进位
int temp=0; //加和的个位
String result="";
// 从低位到高位逐位相加
for(int i=len1-1;i>=0;i--) {
// Character.getNumericValue()用于将char转换为int
temp=Character.getNumericValue(a.charAt(i))+Character.getNumericValue(b.charAt(i))+carry;
carry=temp/10;
temp%=10;
result=temp+result;
}
// 处理最高位
if(carry!=0) {
result=carry+result;
}
return result;
}
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
String a=cin.next();
String b=cin.next();
System.out.print(add(a,b));
}
}