Solución

@kappa_cat
·hace 11hTypeScript
solution.tsTypeScript
function isHappyNumber(n: number): boolean {
  
  let currentNum = n
  const seenNum = new Set<number>()

  // Split the number into digits, square each digit, and sum them
  // Store previously seen numbers in a Set to detect cycles and avoid infinite loops
  while (currentNum !== 1 && !seenNum.has(currentNum)) {
    seenNum.add(currentNum)

    currentNum = currentNum
      .toString()
      .split('')
      .map(Number)
      .reduce((prev, curr) => prev + curr**2, 0)
  }

  return currentNum === 1;
}

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

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.
Markdown