Easy-题目20:202. Happy Number
来源:互联网 发布:画化学分子式的软件 编辑:程序博客网 时间:2024/06/05 11:02
题目原文:
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
•
•
•
•
题目大意:
判断一个数是不是“快乐的”。
快乐数的定义是:把一个正整数每个数位上的数求平方和,得到的数再求平方和……若能够得到1则为快乐数。
题目分析:
根据百度百科 任何不快乐数都会陷入4 → 16 → 37 → 58 → 89 → 145 → 42 → 20 → 4 的死循环。因此可以设计算法:不断求当前数的平方和,若出现上述数之一则返回false,若得到1则返回true。
源码:(language:java)
public class Solution { public boolean isHappy(int num) { while(true) { if(num==1) return true; else if(num==4||num==16||num==37||num==58||num==89||num==145||num==42||num==20) return false; else { int newnum=0; while(num!=0) { newnum=newnum+(num%10)*(num%10); num=num/10; } num=newnum; } } }}
成绩:
2ms,beats 85.98%,众数6ms,25.67%
Cmershen的碎碎念:
Trivial的方法是,使用一个hashset记录迭代过程中出现的数字,如果出现重复的则不是快乐数。但本算法中利用了重复数字的规律可以减少迭代次数和在hashset中的比较开销,在此第二次感叹数学的强大。
- Easy-题目20:202. Happy Number
- 202. Happy Number (Easy)
- 202. Happy Number [easy] (Python)
- 202. Happy Number 难度:easy
- LeetCode 202. Happy Number (Easy)
- Leetcode 202. Happy Number (Easy) (cpp)
- [Leetcode 202, Easy] Happy Number
- 【LeetCode】(202)Happy Number(Easy)
- <LeetCode><Easy> 203 Happy Number
- Leet Code OJ 202. Happy Number [Difficulty: Easy]
- 202.leetcode Happy Number(easy)[数学 快乐数]
- 【Leetcode】202-Happy Number【Java实现】【Easy】
- 202. Happy Number
- [LeetCode]202.Happy Number
- 【LeetCode】202.happy number
- LeetCode 202. Happy Number
- [leetcode] 202.Happy Number
- 【leetcode】202. Happy Number
- copy file to system/lib on adroid root devices
- 第三条 Singleton 模式
- Volley HTTP 缓存机制
- POJ 1679 最小生成树
- 【hibernate】HQL初识
- Easy-题目20:202. Happy Number
- Android:Intent Filter 和 action 简介AndroidMainfest.xm
- ORM框架
- Easy-题目21:326. Power of Three
- H-Index
- Andriod Toast 自定义
- Easy-题目22:231. Power of Two
- Intent中的四个重要属性——Action、Data、Category、Extras
- 最大子段和问题