#include<set>
class Solution {
public:
bool isHappy(int n) {
set<int> visited;
visited.insert(n);
int sum = n;
while(sum!=1)
{
n = sum;
sum = 0;
while(n>0)
{
sum += (n %10)*(n%10);
n = n/10;
}
// cout<<sum<<endl;
set<int>::iterator iter;
iter=visited.find(sum);
if(iter!=visited.end())return false;
else visited.insert(sum);
}
return true;
}
};
本文介绍了一个使用C++实现的快乐数判断算法。通过一个循环过程,不断将数字的每一位平方求和,直至该和为1则认为是快乐数,否则进入无限循环。利用set容器记录已出现过的数字来避免重复计算。
767

被折叠的 条评论
为什么被折叠?



