hanoi(汉诺塔)的C语言实现

基本思想:(如图所示)
hanoi(汉诺塔)的C语言实现_第1张图片
代码如下

#include
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;
}

hanoi(汉诺塔)的C语言实现_第2张图片

你可能感兴趣的:(汉诺塔问题)