快乐数
思路:快乐数最后结果为1,非快乐数会一直循环。
所以,记录每一个数,如果不为1就插入到vector中,每次计算是否是快乐数之前,在vector中查找,如果有当前的数值则进入了循环
记录快乐数的方法
快乐数%10 个 十 百
一直这样计算,直到结果为1或者有循环数
代码如下:
class Solution {
public:
bool isHappy(int n) {
vector<int> shuzhi;
int sum=n;
while (true)
{
if(sum==1)
{
return true;
}
if(find(shuzhi.begin(),shuzhi.end(),sum)!=shuzhi.end())
{
return false;
}
shuzhi.emplace_back(sum);
n=sum;
sum=0;
//只剩个位数
do
{
sum=sum+(n%10)*(n%10);
n=n/10;
}while(n!=0);
}
}
};