/**
 * Examples from Chapter 7.
 */
public class Tables {

    public static void countdown(int n) {
        while (n > 0) {
            System.out.println(n);
            n = n - 1;
        }
        System.out.println("Blastoff!");
    }

    public static void sequence(int n) {
        while (n != 1) {
            System.out.println(n);
            if (n % 2 == 0) {         // n is even
                n = n / 2;
            } else {                  // n is odd
                n = n * 3 + 1;
            }
        }
    }

    public static void example() {
        int i = 1;
        while (i < 10) {
            double x = (double) i;
            System.out.println(x + "   " + Math.log(x));
            i = i + 1;
        }
    }

    public static void example2() {
        int i = 1;
        while (i < 10) {
            double x = (double) i;
            System.out.println(x + "   " + Math.log(x) / Math.log(2));
            i = i + 1;
        }
    }

    public static void example3() {
        final double log2 = Math.log(2);
        int i = 1;
        while (i < 100) {
            double x = (double) i;
            System.out.println(x + "   " + Math.log(x) / log2);
            i = i * 2;
        }
    }

    public static void example4() {
        int i = 1;
        while (i <= 6) {
            System.out.printf("%4d", 2 * i);
            i = i + 1;
        }
        System.out.println();
    }

    public static void printRow() {
        int i = 1;
        while (i <= 6) {
            System.out.printf("%4d", 2 * i);
            i = i + 1;
        }
        System.out.println();
    }

    public static void printRow2(int n) {
        int i = 1;
        while (i <= 6) {
            System.out.printf("%4d", n * i);
            i = i + 1;
        }
        System.out.println();
    }

    public static void example5() {
        int i = 1;
        while (i <= 6) {
            printRow2(i);
            i = i + 1;
        }
    }

    public static void printTable() {
        int i = 1;
        while (i <= 6) {
            printRow2(i);
            i = i + 1;
        }
    }

    public static void printTable2(int rows) {
        int i = 1;
        while (i <= rows) {
            printRow2(i);
            i = i + 1;
        }
    }

    public static void printRow3(int n, int cols) {
        int i = 1;
        while (i <= cols) {
            System.out.printf("%4d", n * i);
            i = i + 1;
        }
        System.out.println();
    }

    public static void printTable3(int rows) {
        int i = 1;
        while (i <= rows) {
            printRow3(i, rows);
            i = i + 1;
        }
    }

    public static void printTable4(int rows) {
        for (int i = 1; i <= rows; i = i + 1) {
            printRow3(i, rows);
        }
    }

    public static void printRow4(int n, int cols) {
        int i;
        for (i = 1; i <= cols; i = i + 1) {
            System.out.printf("%4d", n * i);
        }
        System.out.println(i);
    }

    public static void main(String[] args) {
        System.out.println("countdown");
        countdown(3);

        System.out.println("sequence");
        sequence(10);

        System.out.println("example");
        example();

        System.out.println("example2");
        example2();

        System.out.println("example3");
        example3();

        System.out.println("example4");
        example4();

        System.out.println("example5");
        example5();

        System.out.println("printRow");
        printRow();

        System.out.println("printRow2");
        printRow2(6);

        System.out.println("printTable");
        printTable();

        System.out.println("printTable2");
        printTable2(6);

        System.out.println("printRow3");
        printRow3(6, 6);

        System.out.println("printTable3");
        printTable3(6);

        System.out.println("printRow4");
        printRow4(6, 6);

        System.out.println("printTable4");
        printTable4(6);
    }
}

@@ -1019,19 +1019,19 @@
  double 
-log
+LOG
 2 = Math
@@ -1176,19 +1176,19 @@
 og(x) / 
-log
+LOG
 2);%0A    

read through ch07