Neste tutorial vou mostrar como construir um algoritmo da Torre de Hanói usando recursividade. Este algoritmo sera montado e implementado em na linguagem de programação Java.
Construído no Netbeans 7.0 com Java Console, basta copiar e colar o código para ver algoritmo funcionando.
package torrehanoi;
import java.util.Scanner;
public class TorreHanoi {
static double cont; Scanner scn = new Scanner(System.in); public static void main(String[] args) { TorreHanoi programa = new TorreHanoi();
programa.Inicio();
} private void Inicio() {
System.out.println("Entre com numero de discos");
double numero = scn.nextInt();
cont = 0; moverTorre(numero, 'A', 'C', 'B');
System.out.println("\nEste é o Numero de Discos: " + numero);
System.out.println("\nNumero de Movimentos: " + cont);
} private void moveUmDisco(char inicio, char fim) {
cont = cont + 1;
System.out.println("\n" + inicio + " " + fim + " Numero Movimentos = " + cont);
} private void moverTorre(double n, char inicio, char fim, char temp) {
if (n == 1) {
moveUmDisco(inicio, fim);
} else {
moverTorre(n - 1, inicio, temp, fim);
moveUmDisco(inicio, fim);
moverTorre(n - 1, temp, fim, inicio);
} }
Construído no Netbeans 7.0 com Java Console, basta copiar e colar o código para ver algoritmo funcionando.
package torrehanoi;
programa.Inicio();
} private void Inicio() {
System.out.println("Entre com numero de discos");
double numero = scn.nextInt();
System.out.println("\nEste é o Numero de Discos: " + numero);
System.out.println("\nNumero de Movimentos: " + cont);
} private void moveUmDisco(char inicio, char fim) {
cont = cont + 1;
System.out.println("\n" + inicio + " " + fim + " Numero Movimentos = " + cont);
} private void moverTorre(double n, char inicio, char fim, char temp) {
if (n == 1) {
moveUmDisco(inicio, fim);
} else {
moverTorre(n - 1, inicio, temp, fim);
moveUmDisco(inicio, fim);
moverTorre(n - 1, temp, fim, inicio);
} }
}
Participe da promoção "Torre de Hanói", basta acessar o link abaixo para participar
Nenhum comentário:
Postar um comentário