Haskell:conteo,suma y producto de dígitos

En este artículo presentamos un sencillo programa elaborado en haskell que realiza el conteo de digitos, la suma y el producto.

Codigo fuente


digitos ::Int->Int

digitos 0 = 0

digitos n =1+digitos (div n 10)



suma::Int->Int

suma 0=0

suma n=(mod n 10)+suma(div n 10)



prod::Int->Int

prod 0=1

prod n=(mod n 10)*prod(div n 10)



resultado::Int->String

resultado 0=""

resultado n="numero de digitos:"++show(cont n)++" "++"la suma es:"++show(suma n)++" "++"el producto es:"++show(prod n)





Este programa consta de 4 funciones, las 3 primeras funciones realizan el conteo, la suma y producto de dígitos, la última es la función principal que muestra los resultados de estas tres funciones.

Ejemplo:

n = 423
Digitos 423 =1+ digitos 42
Digitos 42= 1 + digitos 4
Digitos 4 = 1 + digitos 0


Digitos 0 = 0

Digitos 423 = 1 + 1 + 1 +0 = 3

Suma 423 = 3 + suma 42
suma 42 = 2 +suma 4
suma 4 = 4 + suma 0
suma 0 = 0
suma 423 = 3 + 2 + 4 + 0 = 9

prod 423 = 3 * prod 42
prod 42 = 2 * prod 4
prod 4 = 4 * prod 0
prod 1 = 1
prod 423 = 3 * 2 * 4 * 1 = 24

La función principal:

Resultado 423 =numero de digitos: (digitos 423) la suma es: (suma 423) el producto es: (prod 423)

Resultado 423 = "numero de digitos:3 la suma es:9 el producto es:24"

Artículos relacionados:

0 comentarios :