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

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Gunanhuai/article/details/89077042