13. Recursive Factorial Method Java Programming: From Problem Analysis to Program Design, 5e public static int fact( int num) { if (num = = 0) return 1; else return num * fact(num – 1); }
15. Largest Value in Array Java Programming: From Problem Analysis to Program Design, 5e
16.
17. Largest Value in Array (continued) Java Programming: From Problem Analysis to Program Design, 5e public static int largest( int [] list, int lowerIndex, int upperIndex) { int max; if (lowerIndex == upperIndex) return list[lowerIndex]; else { max = largest(list, lowerIndex + 1, upperIndex); if (list[lowerIndex] >= max) return list[lowerIndex]; else return max; } }
18. Execution of largest (list, 0, 3) Java Programming: From Problem Analysis to Program Design, 5e
19. Execution of largest (list, 0, 3) Java Programming: From Problem Analysis to Program Design, 5e
21. Recursive Fibonacci (continued) Java Programming: From Problem Analysis to Program Design, 5e public static int rFibNum( int a, int b, int n) { if (n == 1) return a; else if (n == 2) return b; else return rFibNum(a, b, n -1) + rFibNum(a, b, n - 2); }
23. Towers of Hanoi Problem with Three Disks Java Programming: From Problem Analysis to Program Design, 5e
24. Towers of Hanoi: Three Disk Solution Java Programming: From Problem Analysis to Program Design, 5e
25. Towers of Hanoi: Three Disk Solution (continued) Java Programming: From Problem Analysis to Program Design, 5e
26. Towers of Hanoi: Recursive Algorithm Java Programming: From Problem Analysis to Program Design, 5e public static void moveDisks( int count, int needle1, int needle3, int needle2) { if (count > 0) { moveDisks(count - 1, needle1, needle2, needle3); System.out.println( " Move disk " + count + " from needle " + needle1 + " to needle " + needle3 + " . " ); moveDisks(count - 1, needle2, needle3, needle1); } }
27.
28. Programming Example: Decimal to Binary Java Programming: From Problem Analysis to Program Design, 5e