202. 快乐数 python

2023-11-13

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

「快乐数」 定义为:

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

如果 n 是 快乐数 就返回 true ;不是,则返回 false 。

class Solution:
    

    def isHappy(self, n: int) -> bool:
        def getSum(n):
            summary = 0
            while n:
                summary += (n % 10) * (n % 10)
                # n /= 10 # ❗ 错误
                # 在Python中/表示浮点整除法,返回浮点结果,也就是结果为浮点数;
                # 而//在Python中表示整数除法,返回大于结果的一个最大的整数,意思就是除法结果向下取整。
                # 举例
                # print("6 // 4 = " + str(6 // 4)) 
                # print("6 / 4 =" + str(6 / 4))
                # 结果: 
                # 6 // 4 = 1 
                # 6 / 4 =1.5
                n = n // 10
            return summary

        hash_dict = {}
        summary = n
        while 1:
            summary = getSum(summary)
            if summary == 1:
                return True
            if summary in hash_dict.keys():
                return False
            else:
                hash_dict[summary] = 1

用set()更直观:

class Solution:
    def isHappy(self, n: int) -> bool:
        def calculate_happy(num):
            sum_ = 0
            
            # 从个位开始依次取,平方求和
            while num:
                sum_ += (num % 10) ** 2
                num = num // 10
            return sum_

        # 记录中间结果
        record = set()

        while True:
            n = calculate_happy(n)
            if n == 1:
                return True
            
            # 如果中间结果重复出现,说明陷入死循环了,该数不是快乐数
            if n in record:
                return False
            else:
                record.add(n)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

202. 快乐数 python 的相关文章

  • sudo 和 pip 不在同一路径上

    pip and sudo不在我的计算机上的同一路径上 因此当 基本上一直 我需要运行这两个命令时 如下所示 sudo pip install xxx I get sudo pip command not found pip下载软件包 但由于
  • 从 asyncio 子进程获取实时输出

    我正在尝试使用 Python asyncio 子进程来启动交互式 SSH 会话并自动输入密码 实际用例并不重要 但它有助于说明我的问题 这是我的代码 proc await asyncio create subprocess exec ssh
  • 如何进行重定向并保留查询字符串?

    我想进行重定向并保留查询字符串 就像是self redirect加上发送的查询参数 那可能吗 newurl my new route urllib urlencode self request params self redirect ne
  • 在 ubuntu 中卸载 python 模块

    我必须删除一个名为 django 的 python 模块 一种流行的模块 因为我安装了错误的版本 1 3 py 2 6 中的 beta 如何卸载这个模块 请解释一下 因为我只在 Windows 中使用过 python 而从未在 Ubuntu
  • 使用 Poetry 创建的 Python 项目:如何在 Visual Studio Code 中调试它?

    我有一个根据基本 Poetry 创建的 Python 项目指示 https python poetry org docs basic usage 项目文件夹是这样的 my project my project my project py F
  • Python MySQLdb:connection.close() VS。光标.close()

    如果我使用MySQLdb通过Python连接到MySQL Server 我创建一个connection and a cursor像这样 connection MySQLdb connect cursor connection cursor
  • 熊猫系列到二维数组

    所以 我使用了来自的答案将二维数组放入 Pandas 系列中 https stackoverflow com questions 38840319 put a 2d array into a pandas series将 2D numpy
  • 如何使用 Python 在表单中选择选项?

    我想知道如何以格式如下的形式选择选项 td align left td
  • Python:处理图像并保存到文件流

    我需要使用 python 处理图像 应用过滤器和其他转换 然后使用 HTTP 将其提供给用户 现在 我正在使用 BaseHTTPServer 和 PIL 问题是 PIL 无法直接写入文件流 因此我必须写入临时文件 然后读取该文件 以便将其发
  • Python 模块 BeautifulSoup 提取锚点 href

    我正在使用 BeautifulSoup 模块通过以下方式从 html 选择所有 href def extract links html soup BeautifulSoup html anchors soup findAll a print
  • 如何停止 PythonShell

    如何终止 停止 Node js 中 PythonShell 执行的 Python 脚本的执行 我在交互模式下运行 输出通过 socket io 发送到给定的房间 如果没有更多的客户端连接到这个房间 我想停止 python 脚本的执行 这是我
  • python os.fork 使用相同的 python 解释器吗?

    据我所知 Python 中的线程使用相同的 Python 解释器实例 我的问题是与创建的流程相同os fork 或者每个进程创建的os fork有自己的翻译吗 每当你 fork 时 整个 Python 进程都会在内存中复制 包括Python
  • 如何在使用 Flask for Python 3 的同时使用 Bootstrap 4?

    我检查过 发现默认安装时 Flask Bootstrap 原生使用 Bootstrap 3 3 7 但实际上我想通过使用 Flask Bootstrap 包在我的项目中使用 Bootstrap 4 任何有关如何更新它或类似内容的帮助将不胜感
  • 如何在 Jupyter Notebook 中选择 conda 环境

    我安装了 Anaconda 5 3 和 Python 3 7 根环境 之后我使用 Python 3 6 创建了一个新环境 py36 我激活了新环境activate py36 conda env list表明环境是活跃的 但是当我启动 Jup
  • 从函数在 python 3 中创建全局变量

    我想知道为什么在函数结束后我无法访问变量 variable for raw data 代码是这样的 def htmlfrom Website URL import urllib request response urllib request
  • 如何通过 API Gateway 使用事件调用类型调用 Lambda 函数?

    文件说 默认情况下 Invoke API 采用 RequestResponse 调用类型 您可以选择通过将 Event 指定为 InitationType 来请求异步执行 因此 我可以发送到我的函数 python 的就是到处都是 Inspi
  • 为什么我的 Python 散点图不起作用?

    我使用 pylab 创建了一个非常简单的散点图 pylab scatter engineSize fuelMile pylab show 该程序的其余部分不值得发布 因为正是该行给我带来了问题 当我将 散点 更改为 绘图 时 它会绘制数据图
  • 如何使用 Matplotlib 可视化标量二维数据?

    所以我有一个网格网格 矩阵 X 和 Y 以及标量数据 矩阵 Z 我需要将其可视化 最好是一些 2D 图像 在各点处带有颜色 显示 Z 值 我做了一些研究 但没有找到任何能完全满足我想要的效果的东西 pyplot imshow Z 看起来不错
  • 无法将 librosa 与 python 3 一起使用

    我已经在 Windows 上的 ubuntu 子系统上使用 pip3 正确安装了 librosa 但是当我尝试执行像这样的简单程序时 import librosa data sr librosa load sound mp3 print d
  • Docker Python 脚本找不到文件

    我已经成功构建了一个 Docker 容器 并将应用程序的文件复制到 Dockerfile 中的容器中 但是 我正在尝试执行引用输入文件 在 Docker 构建期间复制到容器中 的 Python 脚本 我似乎无法弄清楚为什么我的脚本告诉我它无

随机推荐

  • flutter Image图片控件-知识点

    图片是大家做项目中常用最大控件之一 本篇针对项目中经常用的功能 做些总结 ImageProvider 是一个抽象类 主要定义了图片数据获取的接口load 从不同的数据源获取图片需要实现不同的ImageProvider 如AssetImage
  • Linux搭建SVN服务器

    1 安装SVN 官网下载 http subversion apache org packages html SVN客户端 TortoiseSVN 官网下载 http tortoisesvn net downloads html yum in
  • SpringCloud——GateWay入门

    客户由发送请求由Nginx服务器已经将请求转发到一个服务器上 但是服务之前我们还需要一个网关将这些请求进一步加工处理到服务上 这一步就是GateWay GateWay 1 GateWay服务是不需要进入以下jar包
  • Java_synchronized的锁对象之对象锁和类锁

    具体知识学习与 https blog csdn net yansuoo article details 51248281 https www jianshu com p 6586d9f3b515 下面是自己的理解 代码 一 前置知识 jav
  • 设计模式-建造者模式

    建造者模式是一种创建型设计模式 它允许你创建复杂对象的不同表示 而无需直接与其构造函数参数进行交互 建造者模式将一个复杂对象的构建与其表示分离 使得同样的构建过程可以创建不同的表示 建造者模式的核心思想是将一个复杂对象的构建过程分解为多个简
  • web前端基础——第二章

    目录 十八 表格标签 1 table tr th td caption 等 2 语义化标签 thead tbody tfoot 十九 表格属性 二十 表单标签 二十一 表格表单组合 二十二 div 与 span 1 div 做一个区域划分的
  • Redis 缓存清理

    redis中 key过期后并不会马上删除 而是同时使用了 3 种策略来删除这些key 惰性清除 访问key时 如果发现key已经过期 那么会将key删除 定时清理 每次清理会依次遍历所有DB 从db随机取出20个key 如果过期就删除 如果
  • React之路由的基本操作

    文章目录 路由的基本使用 路由组件与一般组件 NavLink与封装NavLink Switch的使用 解决多级路径刷新页面样式丢失的问题 路由的严格匹配与模糊匹配 Redirect的使用 嵌套路由 实例 文件目录 public index
  • vue+element-ui el-select + el-tree下拉树形结构组件(新增多选功能且可以全选、反选、清空)

    一 最终效果 二 具体HTML代码 详情请看源码
  • STM32 CH340一键下载电路

    因为自己要做开发板 就给stm32的uart1加了个ch340一键下载电路 记录在此 开发板原理图 原理图 pcb制板图 此外还要把BOOT0通过一个10K 电阻接地 以上元器件大多数都是嘉立创基础库 不用交换料费 ch340和USB插座除
  • 【机器学习】决策树(上)——从原理到算法实现

    前言 决策树 Decision Tree 是一种基本的分类与回归方法 本文主要讨论分类决策树 决策树模型呈树形结构 在分类问题中 表示基于特征对实例进行分类的过程 它可以认为是if then规则的集合 也可以认为是定义在特征空间与类空间上的
  • 气体浓度PPM与mg/m3的换算关系

    1 换算方法之一 空气和废气检测分析方法 第四版增补版 中国环境科学出版社 空气中气体污染物浓度的表示方法 空气中污染物的浓度是以单位体积内所含污染物的质量来表示 即毫克每立方米 mg m3 和微克每立方米 ug m3 在实际工作中 往往习
  • 用vue实现编写登录注册页面

    Vue 是一个用于构建用户界面的框架 它可以帮助您实现登录注册页面的开发 下面是实现此功能的一些基本步骤 安装 Vue CLI 首先 您需要在您的计算机上安装 Vue CLI 这是 Vue 开发环境的命令行界面 创建项目 使用 Vue CL
  • L2TP基本概述

    L2TP VPN 背景 原理 应用场景 总结 背景 随着互联网的发展 越来越多的用户需要访问远程网络资源 以及保证自己的网络通信安全 而传统的网络协议并不能满足这些需求 因此出现了VPN Virtual Private Network 技术
  • 【工具使用】Modbus Slave软件使用详解

    软件介绍 Modbus Slave是一个模拟Modbus协议从机的上位机软件 主要用于模拟测试跟其他主机设备通信的过程 与之成套存在的另一个软件 Modbus Poll 则是模拟Modbus协议主机的上位机软件 该软件内部封装标准Modbu
  • linux如何查看进程

    这本阿里P8撰写的算法笔记 再次推荐给大家 身边不少朋友学完这本书最后加入大厂 Github 疯传 史上最强悍 阿里大佬 LeetCode刷题手册 开放下载了 查看进程的命令如下 ps命令 查看静态的进程统计信息 一般结合选项使用 ps a
  • 【Java】运算符

    我不去想是否能够成功 既然选择了远方 便只顾风雨兼程 汪国真 目录 1 认识运算符 1 1 认识运算符 1 2 运算符的分类 2 算术运算符 2 1 四则运算符 2 2 复合赋值运算符 2 3 自增 自减 运算符 3 关系运算符 4 逻辑运
  • innosetup安装前的准备函数InitializeSetup()

    Inno Setup 安装包 安装前执行InitializeSetup 函数 在安装时 需要在运行安装包进行安装前 做一些判定是否继续安装的工作 在Inno 的脚本里写InitializeSetup 函数即可 function Initia
  • Linux练习(显示环境变量)

    include
  • 202. 快乐数 python

    编写一个算法来判断一个数 n 是不是快乐数 快乐数 定义为 对于一个正整数 每一次将该数替换为它每个位置上的数字的平方和 然后重复这个过程直到这个数变为 1 也可能是 无限循环 但始终变不到 1 如果这个过程 结果为 1 那么这个数就是快乐