package pr01; public class VeryBigInteger { private static String digits = "0123456789"; private static int base = 10; private int[] vals; public VeryBigInteger(String numString) { vals = new int[numString.length()]; for (int i = 0; i < vals.length; i++) vals[i] = digits.indexOf(numString.charAt(numString.length() - i - 1)); } private VeryBigInteger(int[] vals) { this.vals = vals; } private VeryBigInteger add(VeryBigInteger op2) { int[] newVals; int len; int carry = 0; len = Math.max(vals.length, op2.vals.length) + 1; newVals = new int[len]; for (int i = 0; i < len; i++) { newVals[i] = carry; carry = 0; if (i < vals.length) newVals[i] = newVals[i] + vals[i]; if (i < op2.vals.length) newVals[i] = newVals[i] + op2.vals[i]; if (newVals[i] >= base) { newVals[i] = newVals[i] - base; carry = 1; } } return new VeryBigInteger(newVals); } public String toString() { String s = ""; for (int i = 0; i < vals.length; i++) s = digits.charAt(vals[i]) + s; return s; } }