汉诺塔的应用,是递归的一种比较例子,题目藐视见下面
就是一个递归的实现 ,先把a上的n-1个盘同过c移到b,再把a上的最后一只盘移到c,随后再把b上的n-1只盘通过a 移到c,描述就是这样
#include<iostream>
using namespace std;
void move(int n, char a, char b, char c) {
if (n == 1) {
//当只有一个盘子的时候直接从a移动到c,这是递归的终止状态
cout << a << "->" << c;
}
else {
//当有n-1个时,就是a通过c移到b
move(n - 1, a, c, b);
cout << a << "->" << c;
//n-1个再次通过a移到c
move(n - 1, b, a, c);
}
}
int main() {
int n;
cin >> n;
move(n, 'a', 'b', 'c');
return 0;
}
这就是汉诺塔的代码
具体可以看这几个博客
http://www.cnblogs.com/ruofengzhishang/articles/1939444.html
http://blog.csdn.net/kkkkkxiaofei/article/details/8333644