欢乐力扣:快乐数

news/2025/2/26 2:03:34

文章目录

  • 1、题目描述
  • 2、思路1
      • 代码


1、题目描述

 快乐数。
 编写一个算法来判断一个数 n 是不是快乐数。
快乐数定义为:对于一个正整数,每次不断将其转化成 每位数字的平方和。 判断是否最终和会为1,是1就是快乐数,否则不是。
在这里插入图片描述

2、思路1

 这里我参考官方题解,讲解的很明白。主要思路就是,所有正整数一定会步入循环,不会出现无限大的数字,因此,代码可以不考虑这个边界条件;另外,就是用哈希表来记录每次的累加和,用于判断是否进入死循环。

代码

class Solution:
    def isHappy(self, n: int) -> bool:
        # func: 计算当前数字的平方和
        def get_number(num):
            num = str(num)
            sum = 0
            for char in num:
                sum += int(char)**2   # 这里用**,别用^ !!!
            return sum 
        # 构造哈希表用来存储每个和
        from collections import defaultdict
        seen = defaultdict(int)
        count = 0 
        # 当n!=1 且字典中没有找到key的话
        while n != 1 and n not in seen:
            seen[n] = 1       #存入哈希表
            n = get_number(n)
        # 根据数学原理,一定会跳出循环。
        return True if n == 1 else False  

http://www.niftyadmin.cn/n/5867069.html

相关文章

【练习】【回溯:分割】力扣131. 分割回文串

题目 分割回文串 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 示例 1: 输入:s “aab” 输出:[[“a”,“a”,“b”],[“aa”,“b”]] 示例 2: 输入&am…

关于Postman自动获取token

在使用postman测试联调接口时,可能每个接口都需要使用此接口生成的令牌做Authorization的Bearer Token验证,最直接的办法可能会是一步一步的点击,如下图: 在Authorization中去选择Bearer Token,然后将获取到的token粘贴…

编写最简单flink应用并提交到flink v1.19.2集群

1 概述 本文介绍编写最最简单的word count的代码,编译成jar后,提交到flink v1.19.2集群进行运行。 2 环境准备 2.1 jdk和maven工具的安装 yum安装jdk 1.8: yum install java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64 java-1.8.0-ope…

业务应用和大数据平台的数据流向

概述 业务应用与大数据平台之间的交互是实现数据驱动决策和实时业务处理的关键环节。其交互方式多样,协议选择取决于数据流向、实时性要求及技术架构。一句话总结,数据流向可以是从业务应用写入大数据平台,也可以是大数据平台回写至业务应用…

计算机毕业设计SpringBoot+Vue.jst网上超市系统(源码+LW文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

【无人集群系列---无人机集群编队算法】

【无人集群系列---无人机集群编队算法】 一、核心目标二、主流编队控制方法1. 领航-跟随法(Leader-Follower)2. 虚拟结构法(Virtual Structure)3. 行为法(Behavior-Based)4. 人工势场法(Artific…

量子计算在金融风险评估中的应用:革新与突破

量子计算在金融风险评估中的应用:革新与突破 大家好,我是Echo_Wish,一名专注于人工智能和Python的自媒体创作者。今天,我们要探讨的是量子计算在金融风险评估中的应用。量子计算作为新一代计算技术,其超强的计算能力和并行处理能力,正在逐步改变金融风险评估的传统方法。…

vue3 下载文件 responseType-blob 或者 a标签

在 Vue 3 中,你可以使用 axios 或 fetch 来下载文件,并将 responseType 设置为 blob 以处理二进制数据。以下是一个使用 axios 的示例: 使用 axios 下载文件 首先,确保你已经安装了 axios: npm install axios然后在你…