Leetcode#202. Happy Number
2018-03-26 15:25
344 查看
题目描述:判断一个数是否为happy数,如19为happy数:
解题思路:我们首先看一个不是happy数的例子,如11:
可以看到,此时4又出现了,那么会一直陷入这样的循环中,不会出现1,所以判断一个数是否为happy数只要将这个数的各个数位的数平方相加,若出现过的相加和没有重复且最后出现了1,那么这个数字就是happy数,否则不是。
C++实现如下:
解题思路:我们首先看一个不是happy数的例子,如11:
可以看到,此时4又出现了,那么会一直陷入这样的循环中,不会出现1,所以判断一个数是否为happy数只要将这个数的各个数位的数平方相加,若出现过的相加和没有重复且最后出现了1,那么这个数字就是happy数,否则不是。
C++实现如下:
class Solution { public: bool isHappy(int n) { set<int> data; //存储出现过的数 while(!data.count(n)) //若这个数没出现过则循环,count用来统计n的数量 { data.insert(n); int sum = 0; while(n) { sum = sum + (n % 10) * (n % 10); //求出这一次出现的数sum n = n / 10; } if(sum == 1) //如果sum为1,则返回true return true; n = sum; //令n=sum,若n没有出现过,则继续循环;若n出现过,则返回false } return false; } };
相关文章推荐
- leetcode 202 Happy Number
- #leetcode#202. Happy Number
- leetcode 202 Happy Number
- [LeetCode] 202. Happy Number 快乐数
- 202. Happy Number --LeetCode Record
- Leetcode 202 Happy Number
- leetcode 202. Happy Number
- LeetCode 202. Happy Number
- LeetCode 202. Happy Number (Easy)
- [LeetCode]202. Happy Number
- (easy)LeetCode 202.Happy Number
- leetcode-202-Happy Number
- LeetCode笔记:202. Happy Number
- LeetCode 202. Happy Number (迭代,各位平方和)
- [leetcode] 202. Happy Number 解题报告
- Leetcode 202:Happy Number
- leetcode202 Happy Number
- leetCode 202. Happy Number
- 【LeetCode】(202)Happy Number(Easy)
- leetcode刷题记录-202. Happy Number