LeetCode----Happy Number
来源:互联网 发布:郭艾伦体测数据 编辑:程序博客网 时间:2024/06/05 08:02
Happy Number
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
按照给定的流程编写逻辑,使用集合判断当然判断的数是否出现了循环。
Python代码:
class Solution(object): def isHappy(self, n): """ :type n: int :rtype: bool """ n_map = {} for i in range(10): n_map[i] = pow(i, 2) n_set = set() while True: if n == 1: return True if n in n_set: return False else: n_set.add(n) res = self.decoden(n) n = 0 for i in res: if i in n_map: n += n_map[i] else: n += i def decoden(self, n): res = [] while n / 10: res.append(n % 10) n = n / 10 return res + [n]
更简便的C++代码:
class Solution {public: bool isHappy(int n) { set<int> n_set; int m = 0; while(true){ while(n){ m = m + (n % 10) * (n % 10); n = n / 10; } if(m == 1){ return true; } if(n_set.find(m) != n_set.end()){ return false; }else{ n_set.insert(m); } n = m; m = 0; } }};
0 0
- [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
- [LeetCode]Happy Number
- leetcode 202: Happy Number
- leetcode Happy Number
- [LeetCode 202]Happy Number
- LeetCode (24) Happy Number
- LeetCode Happy Number 题解
- [LeetCode] Happy Number
- leetcode 202 Happy Number
- LeetCode Happy Number
- JAVA成长之路
- 【POJ1939】:Diplomatic License
- Java2平台版本
- 如何实现携程动态加载插件中对aapt的改造
- 昂贵的聘礼
- LeetCode----Happy Number
- Java基本数据类型与四个运算
- txt文件导入数据库的utf-8问题
- AndroidStudio中添加第三库文件的方法
- 关于幻读
- 源码分析:Java堆的创建
- Java平台3个版本:
- 10005---JavaWeb基础--HttpServletRequest
- 奇淫巧技之键盘自动弹出