debug_mode=ON

Buscar en

 
 

Convertir un Entero en un Número Romano con Haskell

Escrito por T0ny hace 5 meses bajo Dominio Público
634 visitas. Etiquetas: haskell

Algoritmo para convertir a romano un numero entero

 module Romano where 

 entero = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]
 romano = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"]

 convert :: Int -> String 
 convert  num | num > 0 && num < 4000 = roman 0 num
              | otherwise = "Numero fuera de rango" 
              where 
             roman _ 0 = ""
             roman p n | n >= entero !! p = romano !! p ++ roman p (n-entero!!p)
                       | otherwise = roman (p+1) n

Para poder ejecutarlos solo tienes que hacer en una terminal

ghci <Nombre del archivo>.hs

luego llamamos a la función convert y le pasamos como argumento un número entero

*Romano> convert 3923
"MMMCMXXIII"
Regístrate o haz login para comentar, votar, y muchas cosas más.

Artículos Relacionados

Grupos relacionados

 

¡Votalo! 1 votos
¡Compártelo!

        

&nbps;

&nbps;

T0ny

Sobre T0ny

me gusta la programación funcional mi lenguaje favorito es Haskell :), el SO que utilizo es linux, el manejador de ventanas que manejo es xmonad :)

 
Regístrate o haz login para participar.
¿Todavía no conoces debugmodeon?
debugmodeon es la red social para profesionales de la informática
descubre debugmodeon
 

 

© Copyright 2008-2009 debug_mode=ON | Aviso legal | Contacto | FAQ | ¿Quiénes somos? |