Actualización de «Laberinto numérico»
He actualizado las soluciones del ejercicio Laberinto numérico cuyo enunciado es
El problema del laberinto numérico consiste en, dados un par de números, encontrar la longitud del camino más corto entre ellos usando sólo las siguientes operaciones:
- multiplicar por 2,
- dividir por 2 (sólo para los pares) y
- sumar 2.
Por ejemplo, un camino mínimo
- de 3 a 12 es [3,6,12],
- de 12 a 3 es [12,6,3],
- de 9 a 2 es [9,18,20,10,12,6,8,4,2] y
- de 2 a 9 es [2,4,8,16,18,9].
Definir la función
longitudCaminoMinimo :: Int -> Int -> Int
tal que (longitudCaminoMinimo x y)
es la longitud del camino mínimo desde x
hasta y
en el laberinto numérico.
longitudCaminoMinimo 3 12 == 2 longitudCaminoMinimo 12 3 == 2 longitudCaminoMinimo 9 2 == 8 longitudCaminoMinimo 2 9 == 5