Logo Hardware.com.br
CaSt
CaSt Super Participante Registrado
573 Mensagens 5 Curtidas

Torres de Hanoi - Recursivo

#1 Por CaSt 24/09/2006 - 18:46
Olá para todos.

Então, eu estava dando uma pesquisada sobre o famoso quebra-cabeça das Torres de Hanói. Achei um algorítmo que resolvia o problema. Acontece que eu estou tendo agora o meu primeiro contato com recursão e não peguei bem o raciocínio da recursão do algoritmo que segue abaixo, gostaria que se alguém pudesse e tivesse a disposição de dar uma breve explicação...

#include <stdio.h>

hanoi (int n, int origem, int auxiliar, int destino)
{
if (n>0)
{
hanoi (n-1,origem,destino,auxiliar);
printf ("Mover de %d para %d\n", origem, destino);
hanoi (n-1,auxiliar,origem,destino);
}
}
main()
{
int num;
printf ("Informe o nº de discos no pino 1: &quot;
scanf ("%d", &num);
hanoi(num,1,2,3);
}


Para quem não sabe do que se trata as Torres de Hanói: http://pt.wikipedia.org/wiki/Torre_de_Hanoi

Link de um joguinho online que ilustra bem o que estamos falando:
http://www.ime.usp.br/~leo/imatica/programas/hanoi/index.html

Abs.
jqueiroz
jqueiroz Cyber Highlander Registrado
104K Mensagens 5.7K Curtidas
#2 Por jqueiroz
25/09/2006 - 16:14
Lembra do cálculo do fatorial, do segundo grau?

F(n) = n * F(n-1) p/ n>1, 1 p/ n = 1.

Ou seja, o fatorial de um número é definido em função do fatorial do antecessor dele. Isso é recursividade, quando você, para realizar um cálculo, precisa executar esse mesmo cálculo, com um valor diferente. Depois, você vai "lembrando" dos cálculos anteriores, e voltando "nos seus próprios passos".
"chmod 777 nunca ajudou ninguém" (c) 2002-2021 JQueiroz/FGdH
Conheça o Blog do Zekke
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal