ハッピーナンバー


問題声明
数Nが幸せかどうか決定するアルゴリズムを書く.
幸せな数は以下のプロセスで定義された数です
任意の正の整数で始まる、数字の四角形の合計で番号を置き換えます.
番号が1になるまで、プロセスを繰り返します(どこに滞在する)、またはそれは無限に1を含まないサイクルでループします.
このプロセスが1で終わる数は幸せです.
nがハッピー数ならば真を返し、そうでなければ偽を返します.
アプローチ
  • 最初に、番号がすでに1であるかどうかチェックする必要があります.もしそうならば、trueを返してください.
  • 今ではないので、我々はすでに訪問した番号のトラックを維持する番号のリストを捧げます.私たちが再び彼らを訪問するならば、当然、我々はループにいます、そして、我々は1を訪問することができません.したがって、falseを返します.
  • 他の我々が明らかに我々は1を訪問し、1つ我々は1リターンをtrueを打つ.
  • アルゴリズム

    コード
    class Solution:
        def isHappy(self, n: int) -> bool: 
            #Check if the number is already 1 
            if n == 1: return True
    
            numArray: list[int] = []
    
            #Now loop through until the number becomes 1 or it is in numArray
            while n not in numArray:
                numArray.append(n)
                tempNum: int = 0
    
                while n > 0:
                    tempNum += ((n%10) * (n%10))
                    n //= 10
    
                if tempNum == 1: return True
    
                n = tempNum
    
            #If this statement hits, then it's a false
            return False
    
    リーチコード結果

    それで……場合は、ポストを好きなら、ポストのような何かを学び、私たちに従って確認してください.あなたが私が若干の点で改善して欲しいならば..コメントを残す.