Problema:
Elabore um programa em Java capaz de solucionar o desafio da Torre de Hanoi para uma quantidade qualquer de discos informados pelo usuário.
Objetivo:
Desenvolver o raciocínio lógico dos alunos e fixar os conteúdos apresentados anteriormente.
/**
* Curso de Programação JAVA
*
* Exercício 19 – Torre de Hanoi
*
* @author Prof. Eric Loque M. Xavier
* @version 1.0.0
* Data 05/01/2017
*
*/
import java.util.*;
public class exercicio19 {
public static void main (String[] args){
Scanner ler = new Scanner(System.in);
System.out.println("Digite o número de discos");
//Informe o número de discos
int nDiscos = ler.nextInt();
torreHanoi(nDiscos, 'A', 'B', 'C');
}
/* Método para resolução da Torre de Hanoi
* Número de discos, pino A, pino B e pino C
*/
public static void torreHanoi(int nDisco,
char inicio, char meio, char fim) {
if (nDisco == 1)
System.out.println("Disk 1 from " +
inicio + " to " + fim);
else
{
torreHanoi(nDisco - 1, inicio, fim, meio);
System.out.println("Disk " + nDisco +
" from " + inicio +
" to " + fim);
torreHanoi(nDisco - 1, meio, inicio, fim);
}
}
} 