汉诺塔(Hanoi Tower)步骤输出 C++

来源:互联网 发布:淘宝售后电话是多少 编辑:程序博客网 时间:2024/05/16 19:34
输入格式

给出第一根柱子的圆盘个数N(N <= 20),你要做的就是找出最快将圆盘全部移到第三根柱子的方法,并将方法输出出来。

输出格式

如当N=3的时候,输出

13
12
32
13
21
23
13

每行两个数字表示将第一个数字的柱子的最上面的圆盘移动到第二个数字所表示的柱子上。

样例输入
将样例输入复制到剪贴板
3
样例输出
13123213212313
这个代码看了好久还是不能理解究竟是怎么想出来的……
真的很费脑啊,有空再慢慢研究吧~
#include<iostream>using namespace std;void han(int n, char a, char b, char c){if(n>1){han(n-1, a, c, b);}//cout << n << endl;cout << a << c << endl;if(n>1){han(n-1, b, a, c);} }int main(){int n;cin >> n;han(n,'1','2','3');return 0;}


http://v.ku6.com/show/v8D6cftUWC8qsaGKKXCsXA...html
0 0