import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { String s1 = scanner.next(); String s2 = scanner.next(); int max = getMax(s1, s2) + 1; int a[] = new int[max + 1]; int b[] = new int[max + 1]; putIn(a, s1); putIn(b, s2); int carry = 0; int index = -1; for (int i = max; i >= 1; i--) { int temp = a[i] + b[i] + carry; carry = 0; if (temp >= 10) { carry = 1; } a[i] = temp % 10; if (a[i] != 0 && index == -1) { index = i; } } if (carry == 1) { a[0] += 1; } a[0] = a[0] + b[0]; if (index == -1) { System.out.print(a[0]); } else { System.out.print(a[0] + "."); for (int i = 1; i <= index; i++) { System.out.print(a[i]); } } System.out.println(); } } public static void putIn(int a[], String s) { String[] split = s.split("\\."); a[0] = Integer.parseInt(split[0]); int length = 0; if (split.length > 1) { length = split[1].length(); } for (int i = 0; i < length; i++) { a[i + 1] = Integer.parseInt(split[1].charAt(i) + ""); } } public static int getMax(String s1, String s2) { int length1 = 0, length2 = 0; String[] split1 = s1.split("\\."); String[] split2 = s2.split("\\."); if (split1.length > 1) { length1 = split1[1].length(); } if (split2.length > 1) { length2 = split2[1].length(); } return length1 > length2 ? length1 : length2; } } |
Double click to view unformatted code.