8 条题解
-
6
题解
// 输出:前n个盘子从a柱子挪到b柱子(利用c柱子)的步骤 void h(int n, char a, char b, char c) { if (n == 1) { cout << a << "->" << n << "->" << b << endl; return; } // 把前n-1个盘子,从a挪到c(利用b柱子) h(n - 1, a, c, b); // 把n号盘子,从a挪到b cout << a << "->" << n << "->" << b << endl; // 把前n-1个,从c挪到b(利用a柱子) h(n - 1, c, b, a); }
-
2
#include <iostream> using namespace std; // 输出:前n个盘子从a柱子挪到b柱子(利用c柱子)的步骤 void h(int n, char a, char b, char c) { if (n == 1) { cout<< a <<"->"<< n <<"->"<< b <<endl; return; } // 把前n-1个盘子,从a挪到c(利用b柱子) h(n - 1,a , c , b); // 把n号盘子,从a挪到b cout << a << "->" << n << "->" << b << endl; // 把前n-1个,从c挪到b(利用a柱子) h(n - 1, c, b, a); } int main() { int n; char a,b,c; cin >> n >> a >> b >> c; h(n, a, b, c); return 0; }
-
1
#include <bits/stdc++.h> using namespace std; void ph(int n,char a,char b,char c) { if(n == 1) { cout << a << "->" << n << "->" << b << endl; return; } else { ph(n - 1,a,c,b); cout << a << "->" << n << "->" << b << endl; ph(n - 1,c,b,a); } } int main() { int n; char a,b,c; cin >> n >> a >> b >> c; ph(n,a,b,c); return 0; }
我又来编了…… HXmagician --- Pohuang --- ?
-
1
做题之前,先想明白两件事:
1、边界条件:当只有一个盘子时,cout << a << "->" << n << "->" << b << endl;
2、做这个问题主要分3步:
第一步:把第1~n-1个盘子通过柱子b从柱子a挪到柱子c上
第二步:把第n个盘子从柱子a挪到柱子b上
第三步:把第1~n-1个盘子通过柱子a从柱子c挪到柱子b上
#include <iostream> using namespace std; void output(int n,char a,char b,char c) { if(n == 1) { cout << a << "->" << n << "->" << b << endl;//边界条件 return; } else { output(n - 1,a,c,b);//第一步 cout << a << "->" << n << "->" << b << endl;//第二步 output(n - 1,c,b,a);//第三步 } } int main() { int n; char a,b,c; cin >> n >> a >> b >> c; output(n,a,b,c); return 0; }
-
0
#include <iostream> using namespace std; void h(int n, char a, char b, char c) { if (n == 1) { cout << a << "->" << n << "->" << b << endl; return; } h(n - 1, a, c, b); cout << a << "->" << n << "->" << b << endl; h(n - 1, c, b, a); } int main() { int n; char a, b, c; cin >> n >> a >> b >> c; h(n, a, b, c); }
-
0
#include <iostream> using namespace std; // 输出:前n个盘子从a柱子挪到b柱子(利用c柱子)的步骤 void h(int n, char a, char b, char c) { if (n == 1) { cout << n << " " << a << " " << b << endl; return; } // 把前n-1个盘子,从a挪到c(利用b柱子) h(n - 1, a, c, b); // 把n号盘子,从a挪到b cout << n << " " << a << " " << b << endl; // 把前n-1个,从c挪到b(利用a柱子) h(n - 1, c, b, a); } int main() { int n; cin >> n; h(n, 'a', 'b', 'c'); return 0; } 这个就核桃上面的……没人会来看题解吧
- 1
信息
- ID
- 314
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- 递交数
- 1492
- 已通过
- 508
- 上传者