Definir la función
menor :: Integer -> Integer |
menor :: Integer -> Integer
tal que (menor n) es el menor número divisible por 10^n cuyos dígitos suman n. Por ejemplo,
menor 5 == 500000
menor 20 == 29900000000000000000000 |
menor 5 == 500000
menor 20 == 29900000000000000000000
Soluciones
import Data.List (genericLength, genericReplicate)
menor :: Integer -> Integer
menor n = read (show (n-9*a) ++
genericReplicate a '9' ++
genericReplicate n '0')
where a = n `div` 9 |
import Data.List (genericLength, genericReplicate)
menor :: Integer -> Integer
menor n = read (show (n-9*a) ++
genericReplicate a '9' ++
genericReplicate n '0')
where a = n `div` 9
Se puede imprimir o compartir con
Una idea parecida a la tuya usando un poco la librería Control.Applicative :)