Happy Number —— Leetcode
来源:互联网 发布:偷看微信聊天记录软件 编辑:程序博客网 时间:2024/06/01 08:20
Write an algorithm to determine if a number is "happy".
A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are happy numbers.
Example: 19 is a happy number
- 12 + 92 = 82
- 82 + 22 = 68
- 62 + 82 = 100
- 12 + 02 + 02 = 1
首先想到如果不出现1,肯定会有一个循环,在循环的时候退出就行了;
另外用一个bool型的数组存放该数字是否出现过(或者用set存也行),bool数组更快,由于最大的int整数10位的,假如是2,999,999,999,那么用762=64*12位可表示完。
下面是代码,5ms,很快:
class Solution {public: bool isHappy(int n) { bool h[762] = {0}; int sum = 0; while(sum != 1) { sum = 0; while(n) { sum += (n%10)*(n%10); n /= 10; } if(h[sum]==1) return false; h[sum] = 1; n = sum; } return true; }};
0 0
- Happy Number —— Leetcode
- LeetCode——Happy Number
- Leetcode 记录——Happy Number
- LeetCode题解——Happy Number
- Leetcode——202. Happy Number
- Leetcode Problem.202—Happy Number
- LeetCode202—Happy Number
- leetcode——202——Happy Number
- leetcode刷题日记——Happy Number
- [leetcode] Happy Number
- leetcode: Happy Number
- [LeetCode] Happy Number
- [LeetCode]Happy Number
- LeetCode 202 Happy Number
- LeetCode OJ Happy Number
- [LeetCode]202.Happy Number
- LeetCode 202-Happy Number
- leetcode-202 Happy Number
- 【JAVA学习】11.X JAVA异常处理机制练习
- 原子操作 vs 非原子操作
- iOS开发-使用Storyboard进行界面跳转及传值
- android进程和线程
- php数组:城市车牌对应城市名称
- Happy Number —— Leetcode
- Win7下安装DirectShow
- OMNeT++ 4.2.2 can not find symbol in index
- 杭电ACM1671——Phone List~~字典树
- 通过OdiOSCommand批量执行EPM中CM写的规则(集)
- C# 对称加解密
- C++迭代器 iterator
- CocoaPods详解之----使用篇
- 【兄弟连 】Spring Mvc3 和 C# MVC3