问题及代码:
/*
*Copyright (c) 2014,烟台大学计算机学院
*ALL right reserved
*文件名;frist.cpp
*作者;童宇
*完成日期2014年11月17日
*版本号v1.0
*问题描述:汉诺塔
*输入描述:
*程序输出:输出x个盘子所需的转化步骤
*/
#include <iostream>
using namespace std;
void move(int n, char A, char B,char C);
int main()
{
int x;
cout<<"请输入盘子数:";
cin>>x;
move(x,'A','B','C');
return 0;
}
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);
}
}
运行结果:
学习心得:
虽然一开始一点思路都没有,但是请教单昕昕同学后恍然大悟!
以后遇到问题要虚心求教。