leetcode 202. 快樂數 python實現


思想:

  對輸入數據 把每個位數平方求和

  得到結果如果是1 就返回真 否則 對這個結果遞歸

啥時候事后返回假:

  返回假 說明進入無限循環了。

  啥時候會無限循環?

    某一次求平方和的結果,之前得到過這個結果,那就會無限循環了。

 

所以,我把每次得到的結果 都存起來,如果后面發現某一次得到結果 在之前得到過,那就肯定無限循環了 返回假

 1 class Solution:  2     def isHappy(self, n):  3         """
 4  :type n: int  5  :rtype: bool  6         """
 7         temp = []  8         while True:  9             n = self.get_add(n) 10             if n == 1: 11                 return True 12             elif n in temp: 13                 return False 14             else: 15  temp.append(n) 16 
17     def get_add(self, n): 18         ret = 0 19         while n != 0: 20             g = n % 10
21             ret += g ** 2
22             n = int(n / 10) 23         return ret 24 
25 
26 
27 if __name__ == '__main__': 28     s = Solution() 29     print(s.isHappy(19))

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM