难度:Easy
编写一个算法来判断一个数是不是“快乐数”。
一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。
示例:
输入: 19输出: true解释:12 + 92 = 8282 + 22 = 6862 + 82 = 10012 + 02 + 02 = 1
按题意来,
class Solution {public:bool isHappy(int n) {if(n ==1 ) return true;if(n<4)return false;string s=to_string(n);unordered_set<int> before;while(true){int res=0;for(auto c:s)res+=pow(c-'0', 2);s=to_string(res);// cout<<res<<endl;if (res==1) return true;if(before.count(res)) break;else before.insert(res);}return false;}};