Lecture Notes on 04 Mar 2013 public class Fib { public static int fib_iter (int n) { if ((n == 0) || (n == 1)) { return n; } int f0 = 0; int f1 = 1; int f2 = f0 + f1; for (int i = 2; i < n; i++) { f0 = f1; f1 = f2; f2 = f0 + f1; } return f2; } public static int fib (int n) { if ((n == 0) || (n == 1)) { return n; } else { return fib (n - 1) + fib (n - 2); } } public static void main (String[] args) { for (int i = 0; i < 10; i++) { System.out.println (fib(i) + " " + fib_iter (i)); } } } public class Towers { public static void towers (int n, char source, char spare, char dest) { if (n == 1) { System.out.println ("Move disk from " + source + " to " + dest); } else { towers (n - 1, source, dest, spare); System.out.println ("Move disk from " + source + " to " + dest); towers (n - 1, spare, source, dest); } } public static void main (String[] args) { towers (4, 'A', 'B', 'C'); } }