古代有一个Hanoi塔,塔内有三个座a, b, c, 开始a 座上有n 个盘子,大的在下,小的在上。要求把n 个盘子从a 座搬到c 座,每次只能搬一个,并且在搬的过程中可以利用b 座,但要求始终保持大盘子在下,小盘子在上。编程打印搬盘子的步骤。
void hanoi(int n, char a, char b, char c)
{
if(n == 1)
{
cout<<a<<"->"<<c<<endl;
}
else
{
hanoi(n - 1, a, c, b);
hanoi(1, a, b, c);
hanoi(n - 1, b, a, c);
}
}
int main()
{
int n = 3;
hanoi(n, 'a', 'b', 'c');
}