0votos

Numero equilibrado en Haskell

por josejuan hace 4 años

Aun hay algo de margen para la mejora (ej. sumar potencias y aplicar a la mitad de dígitos 100001, 1001, 11).

numero invertido mas numero original C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
simple n = n + (read.reverse.show) n 
 
 
 
rápida n = n + flipNum n 
 
flipNum n = p n 0 
    where p 0 a = a 
          p z a = let (d, r) = z `divMod` 10 
                  in  p d (10 * a + r) 
 
{- 
    123456789 ~ 9 
    12345678 ~ 98 
    1234567 ~ 987 
    123456 ~ 9876 
    12345 ~ 98765 
    1234 ~ 987654 
    123 ~ 9876543 
    12 ~ 98765432 
    1 ~ 987654321 
-} 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.