Código de C/Visual C - Torres de Hanoi con función recursiva

Torres de Hanoi con función recursivagráfica de visualizaciones


C/Visual C

estrellaestrellaestrellaestrellaestrella(9)
Publicado el 01 de Noviembre del 2005 por Diana Benavides
63.935 visualizaciones desde el 01 de Noviembre del 2005. Una media de 112 por semana
Código recursivo, que dado un número de discos, muestra los movimientos a realizar.
Probado en Turbo C++ 3.0

Versión 1
estrellaestrellaestrellaestrellaestrella(9)

Publicado el 01 de Noviembre del 2005gráfica de visualizaciones de la versión: Versión 1
63.936 visualizaciones desde el 01 de Noviembre del 2005. Una media de 112 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
#include <conio.h>
 
void hanoi(int n,int com, int aux, int fin);
 
void main(void){
 
        clrscr();
	char com='A';
	char aux='B';
	char fin='C';
	int n;
 
	printf("\nN£mero de discos: ");
	scanf("%d",&n);
	fflush(stdin);
 
	printf("\n\nLos movimientos a realizar son: \n");
	hanoi(n,com,aux,fin);
}
 
void hanoi(int n,int com, int aux, int fin){
 
	if(n==1){
		printf("%c->%c",com,fin);
	}
	else{
		hanoi(n-1,com,fin,aux);
		printf("\n%c->%c\n",com,fin);
		hanoi(n-1,aux,com,fin);
	}
}



Comentarios sobre la versión: Versión 1 (9)

K E H O P S
02 de Febrero del 2006
estrellaestrellaestrellaestrellaestrella
simple pero la funcion Hanoi te sirve para comprenderlo. GRACIAS
Responder
William
09 de Mayo del 2007
estrellaestrellaestrellaestrellaestrella
Muy bueno, felcitaciones y gracias
Responder
Roy
06 de Junio del 2007
estrellaestrellaestrellaestrellaestrella
Muy bueno
Responder
Oscar Velasquez Rosado
27 de Abril del 2008
estrellaestrellaestrellaestrellaestrella
No me gusto tu codigo mi herminita de kinder hace mejores cosas que tu, solo mustras el numero de movimiento, pero eso con una pinche formula me entero de ello, seria mejor poner de modo grafico como se mueven , verdad que eso no lo hacen, babosos
Responder
PEREZ
30 de Octubre del 2008
estrellaestrellaestrellaestrellaestrella
NO SIRVE PARA C++ Y TODAVIA ESTAS ANTICUADO.. HASLO CON COUT EN VEZ DE PRINT F
Responder
Lorena Acosta Villalobos
05 de Septiembre del 2010
estrellaestrellaestrellaestrellaestrella
en realidad esta en c y ese codigo no sirve tendrias ke modificarle cosas me kedo algo asi pruebalo solo ke sigue teniendo errores pues no me imprime el resultado :´(
Responder
Victoria
23 de Mayo del 2012
estrellaestrellaestrellaestrellaestrella
Excelente para comprender este problema. Muchas gracias por el aporte.
Saludos
Responder
Kronox
20 de Junio del 2012
estrellaestrellaestrellaestrellaestrella
Muy buena solucion, ignora los comentarios de los retrasados.

Para aquellos que quieran compilarlo con g++ o similares.

#include <iostream>
using namespace std;

void hanoi(int n,char com, char aux, char fin);

int main(){

char com = 'A';
char aux = 'B';
char fin = 'C';
int n;

cout << "Numero de discos: ";
cin >> n;

cout << "Los movimientos a realizar son:" << endl;
hanoi(n,com,aux,fin);
cin >> n;
return 0;
}

void hanoi(int n,char com, char aux, char fin){

if(n==1)
cout << com << " -> " << fin << endl;
else
{
hanoi(n-1,com,fin,aux);
cout << com << " -> " << fin << endl;
hanoi(n-1,aux,com,fin);
}
}

Asi seria en c++ con los aclamados cout...

Un saludo.
Responder
Adolfo Magallanes
24 de Mayo del 2013
estrellaestrellaestrellaestrellaestrella
Muy bueno! :D
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s1260