202. Happy Number
Happy Number看看题目给的例子就知道是什么了。通过一系列迭代:最后得到的数字为1,即是happy number。
1
2
+
9
2
=
82
1^2 + 9^2 = 82
12+92=82
8
2
+
2
2
=
68
8^2 + 2^2 = 68
82+22=68
6
2
+
8
2
=
100
6^2 + 8^2 = 100
62+82=100
1
2
+
0
2
+
0
2
=
1
1^2 + 0^2 + 0^2 = 1
12+02+02=1
我通过定义一个map:记录数字出现的情况,如果在迭代中:又出现了map中记录的数:证明出现了环,也就是该数不是happy number
class Solution {
public:
bool isHappy(int n) {
unordered_map<int,bool> show;
while(true){
int result = 0;
while(n){
result +=(n%10)*(n%10);
n/=10;
}
if(result==1)
return true;
else{
if(show.find(result) !=show.end())
break;
else
show[result]=true;
}
n = result;
}
return false;
}
};