importjava.util.*;importjava.io.*;publicclassMain{staticList<Integer>add(List<Integer>A,List<Integer>B){List<Integer>C=newArrayList<>();int t =0;for(int i =0; i <A.size()|| i <B.size(); i ++){if(i <A.size()) t +=A.get(i);if(i <B.size()) t +=B.get(i);C.add(t %10);
t = t /10;}if(t !=0)C.add(t);returnC;}publicstaticvoidmain(String[] args)throwsIOException{List<Integer>A=newArrayList<>();List<Integer>B=newArrayList<>();String a, b;BufferedReader br =newBufferedReader(newInputStreamReader(System.in));
a = br.readLine();
b = br.readLine();
br.close();for(int i = a.length()-1; i >=0; i --){A.add(a.charAt(i)-'0');}for(int i = b.length()-1; i >=0; i --){B.add(b.charAt(i)-'0');}List<Integer>C=add(A,B);for(int i =C.size()-1; i >=0; i --){System.out.print(C.get(i));}}}
高精度减法
importjava.util.*;importjava.io.*;publicclassMain{staticBooleancompare(List<Integer>A,List<Integer>B){if(A.size()==B.size()){for(int i =A.size()-1; i >=0; i --){if(A.get(i)!=B.get(i)){returnA.get(i)>B.get(i);}}}else{returnA.size()>B.size();}returntrue;}staticList<Integer>del(List<Integer>A,List<Integer>B){List<Integer>C=newArrayList<>();int t =0;for(int i =0; i <A.size()|| i <B.size(); i ++){if(i <A.size()) t +=A.get(i);if(i <B.size()) t -=B.get(i);if(t <0){C.add(t +10);
t =-1;}else{C.add(t);
t =0;}}int j =C.size()-1;while(C.get(j)==0&& j >0){C.remove(j);
j --;}returnC;}publicstaticvoidmain(String[] args)throwsIOException{List<Integer>A=newArrayList<>();List<Integer>B=newArrayList<>();String a, b;BufferedReader br =newBufferedReader(newInputStreamReader(System.in));
a = br.readLine();
b = br.readLine();
br.close();for(int i = a.length()-1; i >=0; i --){A.add(a.charAt(i)-'0');}for(int i = b.length()-1; i >=0; i --){B.add(b.charAt(i)-'0');}List<Integer>C;if(compare(A,B)){C=del(A,B);}else{System.out.print("-");C=del(B,A);}for(int i =C.size()-1; i >=0; i --){System.out.print(C.get(i));}}}
高精度乘法
importjava.util.*;publicclassMain{staticList<Integer>mul(List<Integer>A,int b){List<Integer>C=newArrayList<>();int t =0;for(int i =0; i <A.size()|| t !=0; i ++){if(i <A.size()){
t +=A.get(i)* b;}C.add(t %10);
t /=10;}// 去除前导零int j =C.size()-1;while(j >0&&C.get(j)==0){C.remove(j);
j --;}returnC;}publicstaticvoidmain(String[] args){Scanner sc =newScanner(System.in);String a = sc.next();int b = sc.nextInt();List<Integer>A=newArrayList<>();for(int i = a.length()-1; i >=0; i --){A.add(a.charAt(i)-'0');}List<Integer>C=mul(A, b);for(int i =C.size()-1; i >=0; i --){System.out.print(C.get(i));}}}
高精度除法
importjava.util.*;publicclassMain{staticint r =0;// 余数staticList<Integer>dev(List<Integer>A,int b){List<Integer>C=newArrayList<>();for(int i =0; i <A.size(); i ++){
r =A.get(i)+ r *10;C.add(r / b);
r %= b;}int j =0;while(C.size()>1&&C.get(j)==0){C.remove(j);}returnC;}publicstaticvoidmain(String[] args){Scanner sc =newScanner(System.in);String a = sc.next();int b = sc.nextInt();List<Integer>A=newArrayList<>();for(int i =0; i < a.length(); i ++){A.add(a.charAt(i)-'0');}List<Integer>C=dev(A, b);for(int i =0; i <C.size(); i ++){System.out.print(C.get(i));}System.out.println();System.out.println(r);}}