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: