private void borrow(int[] a, int initialPosition) { int borrowPosition = initialPosition + 1; if (a[borrowPosition] == 0) borrow(a, borrowPosition); a[initialPosition] += 10; --a[borrowPosition]; }
private int[] subtract(int[] a, int[] b) { int biggerSize = a.length; int smallerSize = b.length; int[] result = new int[biggerSize]; for (int i = 0; i < smallerSize; ++i) { if (a[i] < b[i]) borrow(a, i); result[i] = a[i] - b[i]; } int sizeDifference = biggerSize - smallerSize; if (sizeDifference > 0) System.arraycopy(a, smallerSize, result, smallerSize, sizeDifference); return result; }