Upcoming SlideShare
Loading in …5
×

# Chapter 17

294 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
Your message goes here
• Be the first to comment

• Be the first to like this

No Downloads
Views
Total views
294
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

### Chapter 17

1. 1. Recursion Chapter 17
2. 2. 17 What is recursion? Recursion occurs when a method calls itself, either directly or indirectly. Used to solve difficult, repetitive problems
3. 3. 17 Factorial Example N! (N Factorial) N! = N * (N – 1)! for N >= 0 and 0! = 1 5! = 5 * 4! or 5 * 4 * 3 * 2 * 1 * 1 = 120 4! = 4 * 3! or 4 * 3 * 2 * 1 * 1 = 24 3! = 3 * 2! or 3 * 2 * 1 * 1 = 6 2! = 2 * 1! or 2 * 1 * 1 = 2 1! = 1 * 0! or 1 * 1 = 1 0! = 1
4. 4. 17 Calculate Factorials Using Recursion The Java solution: private int doFactorial(int N) { if ( N == 0 ) { return 1; } return N * doFactorial(N – 1); }
5. 5. 17 Towers of Hanoi Three towers hold rings stacked in order from largest to smallest (bottom to top) Player can only move one ring at a time Larger rings cannot be stacked on top of smaller ring Player must move stack to another tower
6. 6. 17 The Towers of Hanoi Algorithm Classic problem can be solved with recursion. Move N–1 rings to storage tower Move Nth ring to destination tower Move N–1 rings to destination tower
7. 7. 17 Towers of Hanoi Solution Final graphical solution includes the files: TowerRing.java Tower.java TowerMove.java ThreeTowers.java TowersOfHanoi.java TowerPanel.java
8. 8. 17 Graphical Towers of Hanoi Applet in progress