🌊

202. Happy Number

に公開

幸せな数かどうかを判定するアルゴリズムを作成してください。

幸せな数(happy number) は次のような過程によって定義されます:

  1. 任意の正の整数から始めます。
  2. 数字の各桁を二乗し、それらの合計で元の数を置き換えます。
  3. この処理を繰り返し、最終的にその数が 1 になる場合(そしてそれ以降ずっと1のままになる)は「幸せな数」と呼びます。
  4. もし1にならず、1を含まない数のループに陥る場合は「幸せな数ではありません」。

この過程が最終的に1で終わる数は「幸せな数」です。
n が幸せな数であれば true を、そうでなければ false を返してください。


例 1:

  • 入力: n = 19
  • 出力: true
  • 説明:
    • 1² + 9² = 82
    • 8² + 2² = 68
    • 6² + 8² = 100
    • 1² + 0² + 0² = 1(→ 幸せな数!)

例 2:

  • 入力: n = 2
  • 出力: false
  • (この場合、1に到達せずループに入る)

制約:

  • 1 <= n <= 2³¹ - 1

Discussion