#include <iostream>
#include <stdio.h>
using namespace std;
void move(int m,char ch,char sh)
{
printf("将第%d盘子直接从%c盘->%c盘\n",m,ch,sh);
}
void haino(int n,char ch,char sh,char ah){
if(n==1)//递归出口
move(n,ch,ah);
else//递归体
{
printf("先将%d个盘子从%c盘移到%c盘\n",n-1,ch,sh);
move(n,ch,ah);
n--;
haino(n,sh,ch,ah);
}
}
//测试函数
int main()
{
int n=10;
char a='A',b='B',c='C';
printf("想要将%d个盘子按照汉诺塔规则从%c->%c",n,a,c);
printf("\n");
haino(n,a,b,c);
}
递归实现汉诺塔
最新推荐文章于 2024-08-03 21:15:16 发布