EXAMPLES OF RECURSIVE FUNCTIONS TOWERS OF HANOI We

  • Slides: 8
Download presentation
EXAMPLES OF RECURSIVE FUNCTIONS

EXAMPLES OF RECURSIVE FUNCTIONS

TOWERS OF HANOI We have 3 pegs(1, 2, 3)!the purpose is moving n disks

TOWERS OF HANOI We have 3 pegs(1, 2, 3)!the purpose is moving n disks from peg 1 to peg 3 with help of peg 2! � At no time, a larger disk should’nt be placed above a smaller disk!: D � Write a program to solve this problem. Use a recursive function with 4 parameters: � The number of disks to be moved � The peg on which these disks are initially placed � The peg to which this stack of disk is to be moved � The peg to be used as a temp holding area �

AN EXAMPLE OF N = 3 1 2 3 2 1 2 3 1

AN EXAMPLE OF N = 3 1 2 3 2 1 2 3 1 3

WHAT IS THE SOLUTION? ! Move n-1 disks from peg 1 to peg 2,

WHAT IS THE SOLUTION? ! Move n-1 disks from peg 1 to peg 2, using peg 3 as a temp holding area. b) Move the last disk(the largest) from peg 1 to peg 3. c) Move the n-1 disks from peg 2 to peg 3, using peg 1 as a temp holding area. Now the world is over!: D a)

WHAT DOES THIS SIMPLE PROGRAM DO? #include<iostream> using namespace std; int mystery(int a, int

WHAT DOES THIS SIMPLE PROGRAM DO? #include<iostream> using namespace std; int mystery(int a, int b); int main(){ int a, b; cout<<"Enter 2 numbers!: "<<endl; cin>>a>>b; cout<<"The result is : "<<mystery(a, b)<<endl; return 0; } int mystery(int a, int b){ if(b == 1) return a; return a + mystery(a, b -1); }

RECURSIVE MAIN! � Can main() be called recursively in your system? ! � Take

RECURSIVE MAIN! � Can main() be called recursively in your system? ! � Take a static variable and increment it! int count; count is global */ � Then call main() at/*main()! � What happened? � Think til next session!; )

SOME NOTATIONS! � Please write your names, Std # and emails in a sheet

SOME NOTATIONS! � Please write your names, Std # and emails in a sheet for me. pleas some one accept this task � Feel free ask/suggest anything you want! � Please put “C++ Course: : ” in the begging of your subjects. � My Emails again: � m. eslami 2@gmail. com � eslami@ce. sharif. edu

ANY QUESTION? Thanks!

ANY QUESTION? Thanks!