题目描述
blablabla
样例
blablabla
算法1
blablabla
时间复杂度分析:blablabla
JAVA 代码
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static boolean cmp(ArrayList<Integer> A,ArrayList<Integer> B){
if (A.size()!=B.size()) return A.size()>B.size();
for (int i = A.size() - 1; i >= 0; i -- )
if (A.get(i) != B.get(i))
return A.get(i) > B.get(i);
return true;
}
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String a,b;
ArrayList<Integer> A=new ArrayList<>();
ArrayList<Integer> B=new ArrayList<>();
a=scanner.next();
b=scanner.next();
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');
ArrayList<Integer> C=null;
if (cmp(A,B)) {
C=sub(A,B);
}else
{
C=sub(B,A);
System.out.print("-");
}
for (int i = C.size() - 1; i >= 0; i -- )
System.out.print(C.get(i));
System.out.println();
}
private static ArrayList<Integer> sub(ArrayList<Integer> A, ArrayList<Integer> B) {
ArrayList<Integer> C=new ArrayList<>();
for (int i = 0,t=0; i <A.size() ; i++) {
t=A.get(i)-t;
if(i<B.size())t-=B.get(i);
C.add((t+10)%10);
if (t<0)t=1;
else t=0;
}
while (C.size()>1&&C.get(C.size()-1)==0)C.remove(C.size()-1);
return C;
}
}