Leetcode 快乐数Happy Number
来源:互联网 发布:怎么加入淘宝充值平台 编辑:程序博客网 时间:2024/05/21 08:22
- 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
一开始的想法就是直接按定义来: int getsum(int x){int sum=0;while(x){sum+=(x%10)*(x%10);x=x/10;}return sum;}bool isHappy(int n) { if(n<=0)return false;bool f=1;long k=getsum(n);while(k!=1){f=0;k=getsum(k);}if(f==0)return true;else return false;}
最后发现运行时间够长,Time Limit Exceeded- 最终查阅有关快来数定义,发现当在迭代循环判断是否为1的过程中时,若进入了这种无限循环,最终都会出现4,故一旦遇见4即可知道进入了无限循环,判断是非快乐数字,减少了时间复杂度:
int getsum(int x){int sum=0;while(x){sum+=(x%10)*(x%10);x=x/10;}return sum;}bool isHappy(int n) { if(n<=0)return false;while(n!=1){n=getsum(n);if(n==4)return false;}return true;}
0 0
- Leetcode 快乐数Happy Number
- leetcode -- happy number 快乐数
- (LeetCode)Happy Number -- 寻找快乐数
- [LeetCode]202. Happy Number 快乐数
- 202.leetcode Happy Number(easy)[数学 快乐数]
- uva10591 - Happy Number(快乐的数)
- LeetCode202——Happy Number快乐数
- LeetCode 202. Happy Number(快乐数字)
- 488.Happy Number-快乐数(容易题)
- LeetCode OJ 之 Happy Number (happy数)
- leetcode系列(21)happy number 欢乐数
- LeetCode 202 Happy Number(开心数)(vector、unordered_set)
- [leetcode] Happy Number
- leetcode: Happy Number
- [LeetCode] Happy Number
- [LeetCode]Happy Number
- LeetCode 202 Happy Number
- LeetCode OJ Happy Number
- 【NOIP2010】乌龟棋题解
- 1392 合并傻子
- Reverse Nodes in k-Group
- 黑马程序员——java中构造函数、继承、多态、接口总结
- 15.文件管理一
- Leetcode 快乐数Happy Number
- 全部源代码_
- asp.NET代码转为flex代码
- 已可预见MariaDB将替代MySQL
- Compare Version Numbers
- HDUOJ 1789(贪心)
- message from server: "Host '192.168.1.10' is not allowed to connect to this MySQL server
- MySQL学习笔记
- java线程基础