mirror of
https://github.com/ShusenTang/LeetCode.git
synced 2024-09-02 14:20:01 +00:00
29 lines
744 B
Markdown
29 lines
744 B
Markdown
![]() |
# [202. Happy Number](https://leetcode.com/problems/happy-number/description/)
|
|||
|
# 思路
|
|||
|
按照题目的意思进行循环,判断每次循环结果是否为1,若是则返回true,否则用map记录结果,然后修改n进行下一次循环。
|
|||
|
# C++
|
|||
|
```
|
|||
|
class Solution {
|
|||
|
private:
|
|||
|
int count_sum(int n){ // 定义题目中所述的求和函数
|
|||
|
int sum = 0;
|
|||
|
while(n > 0){
|
|||
|
sum += (n % 10) * (n % 10);
|
|||
|
n /= 10;
|
|||
|
}
|
|||
|
return sum;
|
|||
|
}
|
|||
|
public:
|
|||
|
bool isHappy(int n) {
|
|||
|
map<int, int>mp;
|
|||
|
while(n){
|
|||
|
if(n == 1) return true;
|
|||
|
if(mp[n] == 1) return false;
|
|||
|
mp[n] = 1;
|
|||
|
n = count_sum(n);
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|
|||
|
};
|
|||
|
```
|