Solución

@drserch·21/5/2026TypeScript
solution.tsTypeScript
function isHappyNumber(n: number): boolean {
  if (n == 1) return true
  function divmod(num: number): number[] {
    return [num % 10, Math.floor(num / 10)]
  }

  const seen = new Set()

  function recursive(num: number) {
    if (seen.has(num)) return false

    seen.add(num)
    let temp = num;
    const nArray = []


    while (temp > 0) {
      const dm = divmod(temp)
      temp = dm[1]
      nArray.push(dm[0])
    }

    let curr = 0
    for (const x of nArray) {
      curr += Math.pow(x, 2)
    }
    console.log({ num, curr})

    if (curr === 1) return true
    return recursive(curr)
  }

  

  return recursive(n);
}

// No modificar: necesario para evaluar el resultado.
export { isHappyNumber };
0respuestas
Respuestas

Aún no hay respuestas

¡Sé el primero en responder!

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.