Torre de Hanoi

A Torre de Hanoi (ou Torres de Hanoi), também conhecida como Torre de Brahma (ou Torres de Brahma), é um quebra-cabeça ou jogo matemático. Consiste de três varas e uma quantidade de discos de tamanhos diferentes que podem encaixar em qualquer das varas. O jogo começa com os discos todos numa vara ordenados em ordem crescente, o menor em cima, a formar uma pirâmide.

O objetivo do jogo é mover a pilha completa para outra vara, a obedecer as seguintes regras:

Objetivo deste exercício

Escreva o núcleo do método: [!java|c]void [/!]hanoi[!c]Rec[/!]([!java|c]int [/!]height[!scala]:Int[/!], [!java|c]int [/!]src[!scala]:Int[/!], [!java|c]int [/!]other[!scala]:Int[/!],[!java|c]int [/!]dst[!scala]:Int[/!])

Este método vai, recursivamente, resolve o problema apresentado. O primeiro parâmetro chamado height é a altura da torre a mover; o segundo parâmetro src é o índice da torre inicial, o terceiro parâmetro other é o índica da vara não utilizada enquanto que o quarto parâmetro dst é o índice da torre final experada.

O segredo para resolver este enigma é reconhecer que pode ser dividido em problemas menores e este em problemas menores até que uma solução é encontrada.

Aqui está um pseudo-código da solução: Para mover n discos da vara A para a vara C: