移动规则:
(1)每次只能移动1个圆盘;
(2)任何时刻都不允许将较大的圆盘压在较小的圆盘之上;
(3)在满足1,2的前提下,可将圆盘移到a,b,c中的任意一塔座上。
#include <iostream>
#include <cstdio>
#include <stack>
#include <cstdlib>
using namespace std;
void move(char a,char b)
{
printf("%c->%c\n",a,b);
}
void hanoi(int n,char a,char b,char c)
{
if(n>0)
{
hanoi(n-1,a,c,b);
move(a,b);
hanoi(n-1,c,b,a);
}
}
int main()
{
//将塔座a上的圆盘移到塔座b上
hanoi(3,'a','b','c');
return 0;
}