SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: Nova05 en Viernes 18 de Marzo de 2011, 01:07
-
weno, tengo este programa que representa el juego de la torre de hanoi... el cual muestra las posiciones de cada disco a X torre para poder ganar.. le entiendo un poco pero kisiera la interpretacion de uds para ampliar mi explicacion y teoria (lo tengo ke exponer)... les dejo el codigo:
si no saben de cual juego es lo encuentran en wikipedia :D
#include<stdio.h>
#include<conio.h>
int hanoi(int n,int com, int aux, int fin);
void main(){
clrscr();
char com='A';
char aux='B';
char fin='C';
int n;
printf("::TORRES DE HANOI::n");
printf("nNumero de discos: ");
scanf("%d",&n);
printf("nnLos movimientos a realizar son: nn");
hanoi(n,com,aux,fin);
getch();
}
int hanoi(int n,int com, int aux, int fin){
if(n==1){
printf(" disco en torre %c pasa a torre %c",com,fin);
}
else{
hanoi(n-1,com,fin,aux);
printf("n disco en torre %c pasa a torre %cn",com,fin);
hanoi(n-1,aux,com,fin);
}
}
-
o mas bn como funciona esta parte de la funcion:
hanoi(n-1,com,fin,aux);
printf("n disco en torre %c pasa a torre %cn",com,fin);
hanoi(n-1,aux,com,fin);
-
Eso se llama recursividad (http://www.lcc.uma.es/~lopez/modular/recursion/transp_recursion.pdf)
-
oo sii, eso ya lo sabia... pero como es ke trabaja esta funcion al mandarla llamar...o como le hace para cambiar las posiciones..
-
¿Entonces lo sabes o no lo sabes? ^_^ Hazle un seguimiento manual (da valores a las variables de entrada y ve siguiendo el código) o depúrala, así lo ves tú mismo ;)
-
creeme k ya lo hice..y es lo ke me saka de onda...xk al acerlo a mano me sale todo raro.. :(