快乐数
来源:互联网 发布:淘宝代购网店怎么开 编辑:程序博客网 时间:2024/06/05 10:47
写一个算法来判断一个数是不是"快乐数"。
一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,或是无限循环但始终变不到1。如果可以变为1,那么这个数就是快乐数。
样例
19 就是一个快乐数。
1^2 + 9^2 = 828^2 + 2^2 = 686^2 + 8^2 = 1001^2 + 0^2 + 0^2 = 1
如果不是快乐数,通过程序可以看到总是在以下数字中循环
4
16
37
58
89
145
42
20
/** * 只要判断是否出现重复的数就可以判断是否为快乐数 * * @param n * @return */ public boolean isHappy(int n) { HashSet<Integer> set = new HashSet<>(); while (true) { n = getSum(n); if (n == 1) return true; if (set.contains(n)) break; set.add(n); } return false; } public int getSum(int n) { int sum = 0; while (n != 0) { sum += (n % 10) * (n % 10); n /= 10; } return sum; }
阅读全文
0 0
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- LintCode-简单-快乐数
- LintCode-快乐数
- LintCode:快乐数
- 快乐数问题
- MyBatis 多表联合查询及优化
- Storm流式计算任务提交及分配
- 归并排序的算法应用
- JavaSE-Headfirst Java笔记
- 19个javascript提高编码效率技巧
- 快乐数
- JavaScript的内置对象 2017-07-31
- hdu2095 find your present (2)(C语言
- RHCE——配置和保护OPENSSH服务
- Objective
- Guava Cache 数据变化实现回调的监听器RemovalListener
- Java数值类型提升机制
- 感想一篇and博客开张
- DC -19 :树树树02(接DC