方法一:数组进位法
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main62 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a=sc.next();
String b=sc.next();
int len=a.length()>=b.length()?a.length():b.length();
// len++;
List<Integer> li=new ArrayList<Integer>();//存储结果
int []ar=new int[len];
int []br=new int[len];
//将字符串a,b存储到数组
for (int i = a.length()-1,j=0; i >=0; i--,j++) {
ar[j]=Integer.parseInt(a.charAt(i)+"");
}
for (int i = b.length()-1,j=0; i >=0; i--,j++) {
br[j]=Integer.parseInt(b.charAt(i)+"");
}
//计算
int t=0;
for (int i = 0; i <len; i++) {
int m=(ar[i]+br[i]+t)%10;
li.add(m);
if (ar[i]+br[i]+t>=10) {
t=(ar[i]+br[i]+t)/10;
}else {
t=0;
}
}
if (t>0) {
System.out.print(t);
}
//输出结果
for (int i = li.size()-1; i >=0; i--) {
System.out.print(li.get(i));
}
}
}
//方法二,java高精度数字方法
import java.math.BigInteger;
import java.util.Scanner;
public class Main62 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
BigInteger a=new BigInteger(sc.nextLine());
BigInteger b=new BigInteger(sc.nextLine());
System.out.println(a.add(b));
//a+b
a.add(b);
//a-b
a.subtract(b);
//a*b
a.multiply(b);
// a/b
a.divide(b);
// a%b
a.mod(b);
}
}