1 / 8

Recursion

Chapter 17. Recursion. What is recursion?. Recursion occurs when a method calls itself, either directly or indirectly. Used to solve difficult, repetitive problems. 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

Download Presentation

Recursion

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 17 Recursion

  2. What is recursion? • Recursion occurs when a method calls itself, either directly or indirectly. • Used to solve difficult, repetitive problems

  3. 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. Calculate Factorials Using Recursion • The Java solution: • private int doFactorial(int N) { if ( N == 0 ) { return 1; } return N * doFactorial(N – 1); }

  5. 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. 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. Towers of Hanoi Solution • Final graphical solution includes the files: • TowerRing.java • Tower.java • TowerMove.java • ThreeTowers.java • TowersOfHanoi.java • TowerPanel.java

  8. Graphical Towers of Hanoi • Applet in progress

More Related