public void print() {
        Map<String, PAdic> results = new LinkedHashMap<String, PAdic>();
        results.put("| Addition       |", addition);
        results.put("| Substraction   |", subtraction);
        results.put("| Multiplication |", multiplication);
        results.put("| Division       |", division);

        int totalLength = Math.max(Math.max(addition.toString().length(), subtraction.toString().length()), multiplication.toString().length()) + "| Multiplication |".length() + 3;

        if (division != null) {
            final int necessary = division.toString().length() + 3 + "| Division       |".length();
            if (totalLength < necessary) {
                totalLength = necessary;
            }
        } else {
            totalLength += 6;
        }

        if (totalLength < 27) { // Length of "| Operation      | Result |"
            totalLength = 27;
        }

        final StringBuilder footer = new StringBuilder();

        while (footer.length() < totalLength) {
            footer.append('-');
        }

        footer.setCharAt(0, '+');
        footer.setCharAt(17, '+');
        footer.setCharAt(footer.length() - 1, '+');

        System.out.println(footer.toString());

        final StringBuilder nextLine = new StringBuilder();
        nextLine.append("| Operation      | Result");

        while (nextLine.length() < totalLength - 1) {
            nextLine.append(' ');
        }
        nextLine.append('|');
        System.out.println(nextLine.toString());
        System.out.println(footer.toString());

        for (String key: results.keySet()) {
            nextLine.delete(0, nextLine.length());
            nextLine.append(key);

            final PAdic result = results.get(key);
            if (result == null) {
                nextLine.append(" ").append("N/A");
            } else {
                nextLine.append(" ").append(result);
            }

            while (nextLine.length() < totalLength - 2) {
                nextLine.append(' ');
            }

            nextLine.append(" |");
            System.out.println(nextLine.toString());
            System.out.println(footer.toString());
        }
    }