輸入:
123
123
輸出:456
輸入:
9
9
輸出:
18
public class Main {
public int[] add(int[] a, int[] b) {
if (a.length == b.length) {
for (int i = a.length - 1; i > 0; i--) {
a[i] = a[i] + b[i];
if (a[i] > 9) {
a[i] = a[i] % 10;
a[i - 1] = a[i - 1] + 1;
}
}
a[0] = a[0] + b[0];
if (a[0] > 9) {
a[0] = a[0] % 10;
int[] newA = new int[a.length + 1];
for (int i = 0; i < a.length; i++) {
newA[i + 1] = a[i];
}
newA[0] = 1;
return newA;
} else {
return a;
}
} else {
int[] bigger = a.length > b.length ? a : b;
int[] smaller = a.length < b.length ? a : b;
int temp = bigger.length - smaller.length;
for (int i = smaller.length - 1; i >= 0; i--) {
bigger[i + temp] = smaller[i] + bigger[i + temp];
if (bigger[i + temp] > 9) {
bigger[i + temp] = bigger[i + temp] % 10;
bigger[i + temp - 1] = bigger[i + temp - 1] + 1;
}
}
for (int i = temp; i > 0; i--) {
if (bigger[i] > 9) {
bigger[i] = bigger[i] % 10;
bigger[i - 1] = bigger[i - 1] + 1;
}
}
if (bigger[0] > 9) {
bigger[0] = bigger[0] % 10;
int[] newA = new int[bigger.length + 1];
for (int i = 0; i < bigger.length; i++) {
newA[i + 1] = bigger[i];
}
newA[0] = 1;
return newA;
} else {
return bigger;
}
}
}
public static void main(String[] args) {
Main main = new Main();
int [] arr1 = {9};
int [] arr2 = {9};
int[] temp = main.add(arr1, arr2);
for (int i = 0; i < temp.length; i++) {
System.out.print(temp[i] + " ");
}
}
}