View Code of Problem 132


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.


Back to problem 132