0votos

El número feliz en Ruby

por alberto hace 5 años

No optimizado

Programar el algoritmo necesario para averiguar si un número es feliz.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def es_feliz?(n, i=20) 
  return false unless i > 0 
  s = sum_digits(n) 
  return true if s == 1 
  es_feliz?(s, i-1) 
end 
 
def sum_digits(n) 
  s = 0 
  while n > 9 
    d = n % 10 
    s += d * d 
    n = n / 10 
  end 
  s += n * n 
end 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.