necesito codigo c++ torres de hanoi
por favor necesito el codigo de las torres de hanoi por favor si alguien puede me lo puede enviar a mi e-mail
aqui te mando esto espero que te sirva
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <math.h>
void moverdisco(short int nDiscos,short int origen,short int dest,short int med,short int a,short int b,short int c,short int f);
int main()
{
short int x,y,z,w=1;
bool val=true;
cout<<"*******************LAS TORRES DE HANOI********************"<<endl;
do
{
cout<<"Digite los numero de manera descendente"<<endl;
cin>>x;
cin>>y;
cin>>z;
if (x>y)
if (y>z)
{
val=true;
moverdisco(3,1,3,2,z,y,x,w);
goto bien;
}
else
{
val=false;
goto mal;
}
else
{
val=false;
goto mal;
}
mal:
cout<<"Los numeros fueron ingresados de manera incorrecta. Vuelva a ingresarlos."<<endl;
cout<<endl;
bien:
cout<<endl;
}
while(val==false);
cout<<endl;
cout<<"despues de moverlos, los numeros se encontraran ordenados"<<endl;
cout<<"en la torre numero 3,de la siguinte forma"<<endl;
cout<<z<<endl;
cout<<y<<endl;
cout<<x<<endl;
system("PAUSE");
return 0;
}
void moverdisco(short int nDiscos,short int origen,short int dest,short int med,short int a,short int b,short int c,short int f)
{
short int d;
f++;
if (f%2==1)
d=b;
if (f==2||f==6)
d=c;
if (f==4)
d=a;
if (nDiscos == 1)
{
cout<<"Mover el numero "<<d<<" de la torre "<<origen<<" hacia la torre "<<dest<<endl;
return;
}
else
{
moverdisco(nDiscos - 1, origen, med, dest,a,b,c,f);
cout<<"Mover el numero "<<d<<" de la torre "<<origen<<" hacia la torre "<<dest<<endl;
moverdisco(nDiscos - 1, med, dest, origen,a,b,c,f);
}
}
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <math.h>
void moverdisco(short int nDiscos,short int origen,short int dest,short int med,short int a,short int b,short int c,short int f);
int main()
{
short int x,y,z,w=1;
bool val=true;
cout<<"*******************LAS TORRES DE HANOI********************"<<endl;
do
{
cout<<"Digite los numero de manera descendente"<<endl;
cin>>x;
cin>>y;
cin>>z;
if (x>y)
if (y>z)
{
val=true;
moverdisco(3,1,3,2,z,y,x,w);
goto bien;
}
else
{
val=false;
goto mal;
}
else
{
val=false;
goto mal;
}
mal:
cout<<"Los numeros fueron ingresados de manera incorrecta. Vuelva a ingresarlos."<<endl;
cout<<endl;
bien:
cout<<endl;
}
while(val==false);
cout<<endl;
cout<<"despues de moverlos, los numeros se encontraran ordenados"<<endl;
cout<<"en la torre numero 3,de la siguinte forma"<<endl;
cout<<z<<endl;
cout<<y<<endl;
cout<<x<<endl;
system("PAUSE");
return 0;
}
void moverdisco(short int nDiscos,short int origen,short int dest,short int med,short int a,short int b,short int c,short int f)
{
short int d;
f++;
if (f%2==1)
d=b;
if (f==2||f==6)
d=c;
if (f==4)
d=a;
if (nDiscos == 1)
{
cout<<"Mover el numero "<<d<<" de la torre "<<origen<<" hacia la torre "<<dest<<endl;
return;
}
else
{
moverdisco(nDiscos - 1, origen, med, dest,a,b,c,f);
cout<<"Mover el numero "<<d<<" de la torre "<<origen<<" hacia la torre "<<dest<<endl;
moverdisco(nDiscos - 1, med, dest, origen,a,b,c,f);
}
}
