public StringBuilder add(StringBuilder num1, StringBuilder num2) {
		if (num1.length() == 0 && num2.length() > 0) {
			return num2;
		}
		if (num2.length() == 0 && num1.length() > 0) {
			return num1;
		}
		int sum = 0;
		int carry = 0;
		StringBuilder sb = new StringBuilder();
		int i = 0;
		for (i = 0; i < num1.length() && i < num2.length(); i++) {
			sum = (num1.charAt(i) - '0') + (num2.charAt(i) - '0') + carry;
			carry = sum / 10;
			sum = sum % 10;
			sb.append(String.valueOf(sum));
		}
		if (i < num2.length()) {// if num2 is longer than num1
			num1 = num2;
		}
		for (; i < num1.length(); i++) {
			sum = num1.charAt(i) - '0' + carry;
			carry = sum / 10;
			sum = sum % 10;
			sb.append(String.valueOf(sum));
		}
		if (carry > 0) {
			sb.append(String.valueOf(carry));
		}
		return sb;

	}