原理:就是n差分成个十百千万多位数,保存在数组里面,然后对数组遍历平方相加,最后看计算得到的平方数是否为1.
class Solution {
public:
bool isHappy(int n)
{
int k = 100;
while(k != 0)
{
int X = n;
vector<int> A;
while(X)
{
A.push_back(X%10);
X = X/10;
}
int Y = 0;
for(int i = 0; i < A.size(); i++)
{
Y =Y + A[i]*A[i];
}
//cout<<Y<<endl;
n = Y;
k--;
if(n == 1)
{
return true;
}
}
return false;
}
};
结果: