编写一个算法来判断一个数 n 是不是快乐数。

「快乐数」定义为:

对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。
然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。
如果 可以变为  1,那么这个数就是快乐数。
如果 n 是快乐数就返回 true ;不是,则返回 false 。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/happy-number

例:

输入:n = 19
输出:true
解释:
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1

#解析:不断循环,用set()存储结果,若set()中存在,则表明出现了死循环,返回-1。

class Solution(object):def isHappy(self, n):def happy(num):sum_ = 0  # 平方和# 从个位开始依次取,平方求和while num:sum_ += (num % 10) ** 2  # 求余平方num = num // 10  #整除return sum_  # 返回平方和record = set()  # 记录中间结果while True:n = happy(n)  # 求平方和if n == 1:return Trueif n in record:  # 如果中间结果重复出现,说明陷入死循环了,该数不是快乐数return Falseelse:record.add(n)  # 录入中间结果

快乐数Python解法相关推荐

  1. 回文数Python解法

    给你一个整数 x ,如果 x 是一个回文整数,返回 true :否则,返回 false . 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数.例如,121 是回文,而 123 不是. 来源 ...

  2. OD2022Q2算法题-补种未成活胡杨,输出最多的连续胡杨树数-PYTHON解法

    题目描述 近些年来,我国防沙治沙取得显著成果.某沙漠新种植N棵胡杨(编号1-N),排成一排.一个月后,有M棵胡杨未能成活.现可补种胡杨K棵,请问如何补种(只能补种,不能新种),可以得到最多的连续胡杨树 ...

  3. LeetCode 137. Single Number II--三次异或消除相同的数--C++,Python解法

    题目地址:Single Number II - LeetCode Given a non-empty array of integers, every element appears three ti ...

  4. LeetCode刷题之python解法(持续更新)

    1. Two Sum 4行 class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:d = {}fo ...

  5. 算法训练Day6 | LeetCode:242. 有效的字母异位词(数组作哈希表);349. 两个数组的交集(Set作哈希表);202.快乐数 (Set作哈希表);1. 两数之和(Map作哈希表)

    目录 LeetCode242. 有效的字母异位词 方法:数组作哈希表 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考 Leetcode349. 两个数组的交集 方法一:用Set作HashMa ...

  6. LeetCode实战:快乐数

    题目英文 Write an algorithm to determine if a number is "happy". A happy number is a number de ...

  7. LeetCode 264. Ugly Number II--C++,Python解法

    题目地址:Ugly Number II - LeetCode Write a program to find the n-th ugly number. Ugly numbers are positi ...

  8. 回文数python_回文数 python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 所谓回文字符串,就是正读和反读都一样的字符串,比如"level&quo ...

  9. LeetCode Algorithm 202. 快乐数

    202. 快乐数 Ideas 快乐数的判断逻辑其实挺简单的,按照定义去循环执行就可以了. 关键是如果不是快乐数怎么结束循环. 我们猜测会有以下三种可能: 最终会得到 1 最终会进入循环 值会越来越大, ...

  10. ★LeetCode(202)——快乐数(JavaScript)

    编写一个算法来判断一个数是不是"快乐数". 一个"快乐数"定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 ...

最新文章

  1. php7 ext skel_基于PHP7的PHP扩展开发之一(hello word)
  2. 德黑兰大学推可踢球机器人,中国队快买!
  3. 从VC 6.0移植代码到VS C++ 2005得出的一些经验
  4. Java集合LinkedList
  5. C++运算符重载(10)
  6. sql server在执行批处理时出现错误。错误消息为: 目录名无效
  7. python plt画半对数坐标_特征工程大传:对数变换
  8. eclipse光标变成黑块变粗解决办法
  9. 4款bt search
  10. 操作系统锁的实现方法有哪几种_java 偏向锁、轻量级锁及重量级锁synchronized原理...
  11. 【LeetCode】124. Binary Tree Maximum Path Sum
  12. QuickTime的桌面录制
  13. mysql 集群搭建(Centos7) for Galera
  14. LinuxProbe 0x14 虚拟网站主机功能(基于端口)、Vsftpd服务传输文件、TFTP简单文件传输协议
  15. 长期一个人独自生活会怎么样?
  16. Maven 报异常 Duplicated tag: ‘properties‘ (position: START_TAG seen ...<!-- \u96c6\u4e2d\
  17. 安卓逆向高阶之frida hook java层
  18. android和苹果微信大小,如何禁止安卓Android或苹果IOS手机在微信中网页放大?
  19. 教你敲代码实现在线电影票选座功能
  20. 【前端框架】Vue2-Vue3

热门文章

  1. for循环遍历Set集合时如何判断是否有下一个元素
  2. 【USACO题库】3.4.4 Raucous Rockers“破锣摇滚”乐队
  3. mime类型总结 input_type=file限制
  4. 抛物线交点式公式_抛物线公式大全
  5. POJ 2387 Til the Cows Come Home BFS最短路求解
  6. AngularJs中input uib-typeahead 搜索加自动补全 注意点
  7. 怎样写好一篇英文论文
  8. 外部方式启动AndroidStudio模拟器
  9. Windows下配置Python环境报错error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft
  10. textfind:文本分析之词频分析-TF-IDF