问题及代码:
/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:tower.cpp
*作 者:赵敏
*完成日期:2014年11月18日
*版 本 号:v1.0
*
*/
#include <iostream>
using namespace std;
void move(int,char,char,char);
int main()
{
int n;
cin>>n;
move(n,'A','B','C');
return 0;
}
//有n个盘子,
void move(int n, char A, char B,char C)
{
if(n==1)
cout<<A<<"-->"<<C<<endl;
else
{
move(n-1,A,C,B);
cout<<A<<"-->"<<C<<endl;
move(n-1,B,A,C);
}
}
运行结果:
15
学习心得:
首先需要明白汉诺塔的移动方法,开始时怎么也明白不了。