标签:
Problem Definition:
Write an algorithm to determine if a number is "happy".
A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are happy numbers.
Example: 19 is a happy number
Solution:
1 def isHappy(self,n): 2 d={} #用字典来存储n 3 while True: 4 if n==1: #一旦某个平方和为1,则肯定happy 5 return True 6 if n not in d: 7 d[n]=0 #0只是一个标记 8 n=self.getSum(n) 9 else: #出现重复且不是1的平方和,不happy 10 return False 11 def getSum(self,n): 12 s=0 13 while n!=0: 14 a=n%10 15 n=n/10 16 s+=a**2 17 return s
标签:
原文地址:http://www.cnblogs.com/acetseng/p/4654802.html