90 likes | 231 Vues
Examples of recursive functions. 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
E N D
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 13 12 32 13 21 23 13
Move n-1 disks from peg 1 to peg 2, using peg 3 as a temp holding area. • Move the last disk(the largest) from peg 1 to peg 3. • 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 What is the solution?!
#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); } What does this simple program do?
Can main() be called recursively in your system?! • Take a static variable and increment it! • Then call main() at main()! • What happened? • Think til next session!;) Recursive main! int count; /* count is global */
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.eslami2@gmail.com • eslami@ce.sharif.edu Some notations!
Thanks! Any question?