202.快乐数
题目:
202. 快乐数 - 力扣(LeetCode)
思路:
最重要的破解点在于,无限循环就会变不到1,翻译出来就是,只要sum重复出现,那么就会陷入循环,所以可以存到set中。
代码:
class Solution {
public:int getsum(int n){ int sum = 0;while(n){sum += ( n % 10 ) * ( n % 10 );n/=10;}return sum;}bool isHappy(int n) {unordered_set<int>result;//关键就在哪个去重,一旦重复出现了就会无限循环到不了1while(1){int x = getsum(n);if( x == 1)return true; if(result.find(x) != result.end() )return false;elseresult.insert(x);n = x;}}};