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 and replace the number by the Sum of the squares of its digits, and repeat the process until the number equals 1 (where it would stay), or it loops Endl essly in a cycle which does not include 1. Those numbers for which this process ends in 1 is happy numbers.
Example:19 is a happy number
- 12 + 92 = 82
- 82 + 22 = 68
- 62 + 82 = 100
- 12 + 02 + 02 = 1
Credits:
Special thanks to @mithmatt and @ts for adding the problem and creating all test cases.
Title: Let you judge whether a number is a happy number. A positive number, the sum of the squares of its number to replace him, if there is a result equal to 1, it is a happy count. If a number has been infinitely looped or is not 1,
Then it's not a happy number.
This topic is to establish a hash table to determine whether the infinite loop.
classSolution { Public: BOOLIshappy (intN) {map<int,int>Intmap; intsum; while(1) {sum=0; while(N >=Ten) {sum+ = (n%Ten) * (n%Ten); N= N/Ten; } Sum+ = nN; if(1= = SUM)return true; Elsen =sum; if(Intmap.find (n) = =intmap.end ()) Intmap[n]=1; Else Break; } return false; }};
Leetcode Happy Number