/*
** Name: Hanoi Tower
** Author: No.20
** Time: 2013年8月19日
** Programming Language: C++
** Description: Recursion implement Hanoi Tower
*/
# include <iostream>
using std::cout;
using std::cin;
using std::endl;
//Declaration of function
int Hanoi(int , char , char , char );
int main()
{
cout<<"Please input the number of disk:";
int diskNumber;
cin>>diskNumber;
char a('A'), b('B'), c('C');
int step;
step = Hanoi(diskNumber,a,b,c);
cout<<"Total Step:"<<step<<endl;
return 0;
}
int Hanoi(int n, char a, char b, char c)
{
static int step = 0;
if(1 == n || 0 == n)
{
cout<<"Move No."<<n<<" "<<a<<"->"<<c<<endl;
++step;
}
else
{
Hanoi(n-1,a,c,b);
cout<<"Move No."<<n<<" "<<a<<"->"<<c<<endl;
step++;
Hanoi(n-1,b, a, c);
}
return step;
}
数据结构学习之汉诺塔代码
最新推荐文章于 2022-01-30 03:28:12 发布