日志15
汉诺塔:
#include<iostream>
using namespace std;
void Hanoi(int n,char a,char b,char c)
{
if(n>=2)
{
Hanoi(n-1,a,c,b);
printf("%d: %c -> %c\n",n,a,c);
Hanoi(n-1,b,a,c);
}
else
{
printf("%d: %c -> %c\n",n,a,c);
}
}
int main()
{
int n;
char a,b,c;
cin>>n>>a>>b>>c;
Hanoi(n,a,b,c);
return 0;
}
汉诺塔为递归问题,主要思路为:将 n 个圆盘分为 n-1 (即除最低层的圆盘)与 1 (即最底层的圆盘),将n-1个圆盘移动到中转位置,将1移动到目的位置,再将 n-1 分为 (n-1)- 1 与 1,将(n-1)- 1 移动到中转位置,将1移动到目的位置,依次类推......
#include<iostream>
using namespace std;
void Hanoi(int n,char a,char b,char c)
{
if(n>=2)
{
Hanoi(n-1,a,c,b);
printf("%d: %c -> %c\n",n,a,c);
Hanoi(n-1,b,a,c);
}
else
{
printf("%d: %c -> %c\n",n,a,c);
}
}
int main()
{
int n;
char a,b,c;
cin>>n>>a>>b>>c;
Hanoi(n,a,b,c);
return 0;
}
汉诺塔为递归问题,主要思路为:将 n 个圆盘分为 n-1 (即除最低层的圆盘)与 1 (即最底层的圆盘),将n-1个圆盘移动到中转位置,将1移动到目的位置,再将 n-1 分为 (n-1)- 1 与 1,将(n-1)- 1 移动到中转位置,将1移动到目的位置,依次类推......
全部评论
相关推荐
点赞 评论 收藏
分享
06-23 18:06
昆明理工大学 算法工程师 点赞 评论 收藏
分享
04-30 19:15
北京航空航天大学 Java 点赞 评论 收藏
分享