Ejemplo 10 - Utilización de recursividad para resolución de problemas - Problema

Objetivo

Distinguir la importancia del uso de recursividad para la solución de un problema.

Enunciado

El problema de las torres de Hanoi consiste en mover una cantidad "n" específica de discos desde una torre inicial hasta una torre final, utilizando una torre intermedia.

El juego inicia de la siguiente manera:

Los discos son todos de distinto tamaño, y se colocan ordenados de tal manera que el más pequeño está colocado más arriba y el mayor más abajo.

Este el diagrama siguiente se muestra el estado inicial del problema para 11 discos ( "n" igual a 11).

La torre inicial es la de la izquierda, la torre final es la de la derecha, y la torre del centro es una torre intermedia.

El objetivo del juego es mover todos los discos de la torre inicial a la torre final, con las siguientes condiciones:

Haga un programa que reciba el número "n", y que muestre, uno por uno, cada movimiento necesario para resolver el problema. El programa debe solucionar el problema con el menor número de movidas posibles (2n - 1).