【 声明:版权所有,转载请标明出处,请勿用于商业用途。 联系信箱:libin493073668@sina.com】
题意:
判断一个数是不是happy number,所谓的happy number就是将该数的数位平方和得到一个新的数,重复进行这个操作,看最后能否得到1
思路:
我们只需要暴力进行即可,但是要注意标记每次得到的数之前是否已经出现过了,如果以前出现过了,那么肯定是不行的
class Solution
{
public:
bool isHappy(int n)
{
int sum = 0;
map<int,int> vis;
vis[n] = 1;
while(n!=1)
{
sum = 0;
while(n)
{
int r = n%10;
sum +=r*r;
n/=10;
}
n = sum;
if(vis[n])
return false;
vis[n] = 1;
}
if(n==1)
return true;
else
return false;
}
};