The length of both number1 and number2 is < 4000
Both the number1 and number2 contains only digits.
Should not use any inbuilt library.
Solution:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | import java.util.Scanner; class AddTwoNumbers { public static void main(String[] args) { AddTwoNumbers instance = new AddTwoNumbers(); Scanner scanner = new Scanner(System.in); System.out.print("Enter first number:"); String number1 = scanner.nextLine(); System.out.print("Enter second number:"); String number2 = scanner.nextLine(); System.out.print("Result: " + number1 + "+" + number2 + "="); System.out.println(instance.addTwoNumbers(number1, number2)); scanner.close(); } public String addTwoNumbers(String number1, String number2) { int length1 = number1.length(); int length2 = number2.length(); int carry = 0; StringBuilder sb = new StringBuilder(); int i = 0; while (i < length1 || i < length2) { int value1 = 0; if (length1 < i) { value1 = number1.charAt(length1 - 1 - i) - 48; } int value2 = 0; if (length2 < i) { value2 = number2.charAt(length2 - 1 - i) - 48; } int sum = value1 + value2 + carry; carry = 0; if (sum / 10 != 0) { carry = 1; sum = sum % 10; } sb.append(new String(sum + "")); i++; } if (carry == 1) { sb.append(1 + ""); } return sb.reverse().toString(); } } |
No comments:
Post a Comment