题目:

与汉诺塔Ⅰ略有不同的是加入了目前移动盘子的序号
汉诺塔Ⅰ:
XMUOJ-校外实训一 【汉诺塔Ⅰ】_Archipelago_的博客-优快云博客
序号就是n,举个特例,最后一个,我猜他是n结果ac了
代码:
#include<iostream>
#include<algorithm>
using namespace std;
void move(int num,char begin,char end)
{
cout<<num<<":"<<begin<<"->"<<end<<endl;
}
void dfs(int n,char st,char mi,char end)
{
if(n==1)
{
move(1,st,end);
return;
}
dfs(n-1,st,end,mi);
move(n,st,end);
dfs(n-1,mi,st,end);
}
int main(){
int n;
char a,b,c;
cin>>n>>a>>b>>c;
dfs(n,a,b,c);
return 0;
}
这篇博客介绍了汉诺塔问题的一个变种——汉诺塔Ⅱ,其中增加了当前移动盘子的序号。通过递归的深度优先搜索(DFS)策略,实现了从初始状态到目标状态的移动过程。代码中展示了如何利用C++实现这一算法,包括移动盘子函数和DFS函数。博客提供了一个特例并解释了其正确性。
1073

被折叠的 条评论
为什么被折叠?



