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