Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations TouchToneTommy on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Recursive Function Definition for Tower of Hanoi.

Recursion Applications

Recursive Function Definition for Tower of Hanoi.

by  SwapSawe  Posted    (Edited  )
The Explanation
I thank Aphrodita for this neat explanation it is copied AS IS :

The first recursive call would move all but the lowest disk on an auxilary one, and then move the biggest of them to the final destination. As you do it, you again have two towers to move around your disks, because if you put any disk on top of the biggest, it does not break the rule.
The second recursive call, makes the first one to solve the problem for n - 1 disks, and at the end of it, it will move the pre-biggest disk on top of the biggest in the 3rd tower. Totally, it will happen n time, making the problem smaller each time, until n becomes 1, which is to mave the last disk on top of all in the 3rd tower.



The code >>
#include <stdio.h>

void move(int,int,int,int);
int main(void)
{
move(4,1,3,2);
}


void move(int n,int A,int C,int B)
{
if (n==1)
{
printf("Move from %d to %d.\n",A,C);
}
else
{
move(n-1,A,B,C);
move(1,A,C,B);
move(n-1,B,C,A);
}
}

Regards,
SwapSawe.
Register to rate this FAQ  : BAD 1 2 3 4 5 6 7 8 9 10 GOOD
Please Note: 1 is Bad, 10 is Good :-)

Part and Inventory Search

Back
Top