#include <cstdlib>
#include <iostream>
using namespace std;
int counts=0;//DEVC++中count不能被定义为全局变量
void hanoi(char fromTower,char toTower,char auxTower,int n);
int main(int argc, char *argv[])
{
int numDisks;
cout<<"盘子的总数量是:";
cin>>numDisks;
hanoi('A','C','B',numDisks);
cout<<"总数量"<<counts<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
void hanoi(char fromTower,char toTower,char auxTower,int n)
{
if(n==1)
{
counts++;
cout<<"Move disk 1 from tower "<<fromTower<<" to tower"<<toTower<<endl;
}
else
{
hanoi(fromTower,auxTower,toTower,n-1);
cout<<"Move disk "<<n<<" from tower "<<fromTower<<" to tower"<<toTower<<endl;
counts++;
hanoi(auxTower,toTower,fromTower,n-1);
}
}
汉诺塔的递归实现
最新推荐文章于 2025-01-10 11:06:03 发布