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) nPara 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"
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 :)
© Copyright 2008-2009 debug_mode=ON | Aviso legal | Contacto | FAQ | ¿Quiénes somos? |