汉诺塔问题
2006-12-19 15:55
239 查看
#include<iostream.h>
int TowersOfHanoi(int n,int x,int y,int z);
int main()
{
TowersOfHanoi(10,1,2,3);
return 0;
}
int TowersOfHanoi(int n,int x,int y,int z)
{
if(n>0)
{
TowersOfHanoi(n-1,x,z,y);
cout<<"move disk from tower "<<x<<" to tower "<<y<<endl;
TowersOfHanoi(n-1,z,y,x);
}
return 0;
}
vc++6.0调试通过,一个经典的递归算法。时间复杂度O(2^n)
int TowersOfHanoi(int n,int x,int y,int z);
int main()
{
TowersOfHanoi(10,1,2,3);
return 0;
}
int TowersOfHanoi(int n,int x,int y,int z)
{
if(n>0)
{
TowersOfHanoi(n-1,x,z,y);
cout<<"move disk from tower "<<x<<" to tower "<<y<<endl;
TowersOfHanoi(n-1,z,y,x);
}
return 0;
}
vc++6.0调试通过,一个经典的递归算法。时间复杂度O(2^n)