数据结构(C语言)汉诺塔问题

数据结构(C语言)汉诺塔问题,第1张

伪算法

if(n>1){
    把A的n-1个盘子借助C移到B
    将A中的第N个盘子直接移到C
    将B柱子上的N-1个盘子借助A移到C
}

代码实现:

#include 
void hannuota(int n,char A,char B,char C);

int main(void){
	int n;
	printf("请输入要移动的盘子数");
	scanf("%d",&n);
	
	hannuota(n,'A','B','C');
}
//hannuota()这个函数的功能是将N个盘子从莫一个柱子A借助莫一个柱子B移动到莫一个柱子C上,ABC柱子不是固定的 
void hannuota(int n,char A,char B,char C){
	if(n==1){
		printf("直接将编号为%d的盘子从%c柱子上移到%c柱子上\n",n,A,C);
	}else{
		hannuota(n-1,A,C,B);
		printf("直接将编号为%d的盘子从%c柱子上移到%c柱子上\n",n,A,C);
		hannuota(n-1,B,A,C);
	} 
	return; 
}

运行结果:

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/789210.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存