hanoi(韩罗塔)的C语言实现
基本思想:(如图所示)
代码如下
#include<stdio.h>
void move(int n,char A,char C)
{
printf("%c->%c\n",A,C);
}
void hanoi(int n,char A,char B,char C)//将n个盘子由初始塔移动到目标塔(利用借用塔)
{
if (n==1)
move(1,A,C);//只有一个盘子是直接将初塔上的盘子移动到目的地
else
{
hanoi(n-1,A,C,B);//先将初始塔的前n-1个盘子借助目的塔移动到借用塔上
move(n,A,C); //将剩下的一个盘子移动到目的塔上
hanoi(n-1,B,A,C);//最后将借用塔上的n-1个盘子移动到目的塔上
}
}
int main()
{
hanoi(2,'A','B','C');//将n个盘子由初始塔移动到目标塔(利用借用塔)
return 0;
}