题目:leetcode 202. Happy Number
题意:就是看数字拆分,加上其乘方,能否等于1。
解题关键: 哈希表记录是否出现重复,若出现重复,则输出错误。
注意事项: n=1的情况要提前判断。
class Solution {
public:
bool isHappy(int n) {
int sum,temp,tempn;
unordered_map<int,int> savem;
if( n == 1 )
return true;
savem[n] = 1;
sum=n;
while(sum != 1)
{
tempn = sum;
sum = 0;
while(tempn)
{
temp = tempn%10;
sum += temp*temp;
tempn /= 10;
}
if(savem[sum] == 1)
return false;
else savem[sum] = 1;
}
return true;
}
};