文章
113
粉丝
1
获赞
857
访问
27.3k
#include <bits/stdc++.h>
using namespace std;
//A(源)、B(辅助)、C(目标)
int sum;
void f(int n,char a,char b,char c){
if(n == 1){
sum++;
cout << a << "-->" << c << " ";
if(sum%5 == 0) cout << endl; //5步换行
return;
}
f(n-1, a, c, b); // 1. 把上面 n-1 个盘子从 a 移到 b(借助 c)
f(1, a, b, c); // 2. 把最下面 1 个盘子从 a 移到 c
f(n-1, b, a, c); // 3. 把 n-1 个盘子从 b 移到 c(借助 a)
}
int main(){
int n;
while(cin >> n && n != 0){
sum = 0;
f(n,'A','B','C');
cout << endl;
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发