Recursion
Chapter 17
17
What is recursion?
Recursion occurs when a method calls
itself, either directly or indirectly.
Used to solve difficult,...
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...
17
Calculate Factorials Using Recursion
The Java solution:
private int doFactorial(int N)
{
if ( N == 0 )
{
return 1;
}
re...
17
Towers of Hanoi
Three towers hold rings stacked in order
from largest to smallest (bottom to top)
Player can only move ...
17
The Towers of Hanoi Algorithm
Classic problem can be solved with
recursion.
Move N–1 rings to storage tower
Move Nth ri...
17
Towers of Hanoi Solution
Final graphical solution includes the files:
TowerRing.java
Tower.java
TowerMove.java
ThreeTow...
17
Graphical Towers of Hanoi
Applet in progress
Upcoming SlideShare
Loading in …5
×

Chapter 17

294 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • 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

×