【蓝桥杯】每天一题,理解逻辑(3/90)【Leetcode 快乐数】

闲话系列:每日一题,秃头有我,Hello!!!!!,我是IF‘Maxue,欢迎大佬们来参观我写的蓝桥杯系列,我好久没有更新博客了,因为up猪我寒假用自己的劳动换了台新电脑,没用父母的钱哦!!!,虽然进度慢了,但是值得,蓝桥杯快开始了,所以我也开始努力起来了。同时,我也欢迎各位大佬互三,看到我会及时回复的!!!

放一张阿刃在这,除大家的霉运
在这里插入图片描述

文章目录

  • 题目解析
  • 算法原理解析
    • 具体解法
  • 代码实现

题目解析

在这里插入图片描述

  1. 搞懂定义
  • 对于一个正整数,每一次替换为它每个位置上的平方和。

  • 举例:

  • 在这里插入图片描述

    • 19这个数字经过处理可以变成1,2这个数字变成了无限循环,
    • 所以19是快乐数字,2就不是
    • 判断最后的那一个环是否都是一

算法原理解析

我们仔细观察,在最后的结尾,

  • 为快乐数的数字最后的结尾都是1,我们可以理解成一个园环。

  • 非快乐数的数字最后结尾我们知道,肯定不是1,但是因为鸽巢原理我们会得出结论肯定成环。(不知道也没关系,下面有详细解析)

  • 原理如图所示,上面的是快乐数,下面的数是非快乐数:
    原理图

  • 判断最后的环的数字是否都是1.

具体解法

  • 解法 快慢双指针。
    • 定义快慢指针 在这里插入图片描述> - 慢指针每次后移一步,快指针每次后移两步 让慢指针一次进行一次操作,让快指针进行2次快乐数操作
      - 判断相遇的值
      - 直接判断相遇的值
  • 鸽巢原理详解:
    • 我们可是让慢指针执行一次,然后对于快指针每一次后移进行执行快乐数的两次操作
      • 为什么这些数字不会一直铺开,为什么一定要成环?
        证明原理:鸽巢原理

      • 如果有n个巢,n+1个鸽子可以推论

      • 在这里插入图片描述

        证明这道题:

      • 一个数字2.1 * 10^9
        在这里插入图片描述

        • 我们已经知道n个巢穴,n+1个鸽子,如果鸽子全部归位,至少有一个巢穴里面的鸽子大于1.

        • 我们拿出9999999999这个数字,进行快乐数操作,

        • 范围将会锁定在【1,810(9^2 * 10)】(这个就是巢穴),我们进行811次快乐数字操作(这个就是鸽子)

代码实现

int HappyC(int n)//快乐数的操作

{   int x=0;

int sum=0;

  while(n)

    {

    x=n%10;

    sum=x*x+sum;

    n=n/10;

    }

    return sum;

}

  

bool isHappy(int n) {

    //定义两个快慢指针,用数字代替

        int fast=0;

        int slow=0;

     slow=n,fast=n;

  while(1)

  {

    fast=HappyC(fast);

    fast=HappyC(fast);

    slow=HappyC(slow);

    if(fast==slow)

    {

        if(fast==1)

        {

            return true;

        }

        else

        {

            return false;

        }

    }

  }

  

}

运行结果展示:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/982597.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

飞机大战lua迷你世界脚本

-- 迷你世界飞机大战 v1.2 -- 星空露珠工作室制作 -- 最后更新:2024年1月 ----------------------------- -- 迷你世界API适配配置 ----------------------------- local UI { BASE_ID 7477478487091949474-22856, -- UI界面ID ELEMENTS { BG 1, -- 背景 BTN_LE…

AI绘画软件Stable Diffusion详解教程(6):文生图、提示词细说与绘图案例

文生图即以文字描述来生成图像,这是目前所有AI绘画软件的基本功能之一。要想画一副好的图片,除了选择好的模型,在文生图中,提示词特别关键。 一、什么是提示词(Prompt) 提示词又称创意、关键词、咒语、ca…

C++编程:进阶阶段—4.1封装

C面向对象的三大特性:封装、继承、多态 具有相同性质的对象,抽象为类 4.1 封装 封装的意义:将属性和行为作为一个整体,表现生活中的事物,并将属性和行为加以权限控制。 4.1.1 类的定义及实例化对象 语法&#xff…

信奥赛CSP-J复赛集训(模拟算法专题)(1):P8813 [CSP-J 2022] 乘方

信奥赛CSP-J复赛集训(模拟算法专题)(1):P8813 [CSP-J 2022] 乘方 题目描述 小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数 a a a 和 b b b,求 a b a^b ab …

Flink深入浅出之02

深入浅出Flink-第二天 目标 掌握常见的DataStream常见的source掌握常见的DataStream的transformation操作掌握常见的DataStream的sink操作了解入门的DataSet API算子 📖 1. DataStream 的编程模型 DataStream 的编程模型包括四个部分:Environment、D…

[C语言日寄] 字符串操作函数的使用及其拓展

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋:这是一个专注于C语言刷题的专栏,精选题目,搭配详细题解、拓展算法。从基础语法到复杂算法,题目涉及的知识点全面覆盖,助力你系统提升。无论你是初学者,还是…

基于websocket的多用户网页五子棋 --- 测试报告

目录 功能测试自动化测试性能测试 功能测试 1.登录注册页面 2.游戏大厅页面 3.游戏房间页面 自动化测试 1.使用脑图编写web自动化测试用例 2.创建自动化项目,根据用例通过selenium来实现脚本 根据脑图进行测试用例的编写: 每个页面一个测试类&am…

【Linux】信号处理以及补充知识

目录 一、信号被处理的时机: 1、理解: 2、内核态与用户态: 1、概念: 2、重谈地址空间: 3、处理时机: 补充知识: 1、sigaction: 2、函数重入: 3、volatile&…

(三) 征服MySQL面试:30+高频核心问题深度剖析与实战指南

一、为什么MySQL是面试的"必答题"? 数据库领域占比:MySQL占据全球关系型数据库市场份额Top 3,阿里、腾讯、美团等大厂核心系统深度依赖技术栈深度检验:通过MySQL问题可考察候选人的数据结构理解、系统设计能力、性能优…

TensorFlow深度学习实战(10)——迁移学习详解

TensorFlow深度学习实战(10)——迁移学习详解 0. 前言1. 迁移学习1.1 迁移学习基本概念1.2 迁移学习的重要性1.3 ImageNet1.4 迁移学习流程2. Inception V3 架构3. 构建迁移学习模型小结系列链接0. 前言 迁移学习( Transfer Learning )是一种利用从一项任务中获得的知识来解…

Docker基础篇——什么是Docker与Docker的仓库、镜像、容器三大概念

大家好我是木木,在当今快速发展的云计算与云原生时代,容器化技术蓬勃兴起,Docker 作为实现容器化的主流工具之一,为开发者和运维人员带来了极大的便捷 。下面我们一起了解下什么是Docker与与Docker的仓库、镜像、容器三大概念。 …

蓝桥杯题型

蓝桥杯题型分类 二分 123 传送门 1. 小区间的构成 假设数列的构成是如下形式: 第 1 个区间包含 1 个元素(1)。第 2 个区间包含 2 个元素(1 2)。第 3 个区间包含 3 个元素(1 2 3)。第 4 个区…

大模型AI平台DeepSeek 眼中的SQL2API平台:QuickAPI、dbapi 和 Magic API 介绍与对比

目录 1 QuickAPI 介绍 2 dbapi 介绍 3 Magic API 介绍 4 简单对比 5 总结 统一数据服务平台是一种低代码的方式,实现一般是通过SQL能直接生成数据API,同时能对产生的数据API进行全生命周期的管理,典型的SQL2API的实现模式。 以下是针对…

本地部署pangolin获取谱系,从而达到预测新冠的流行趋势

步骤 1:安装Docker 注:此步骤忽略,可通过Docker官网对于文档进行安装,地址如下 Docker: Accelerated Container Application Developmenthttps://www.docker.com/ 步骤 2:拉取Pangolin镜像 docker pull staphb/pangolin:latest 步…

HarmonyOS Next 属性动画和转场动画

HarmonyOS Next 属性动画和转场动画 在鸿蒙应用开发中,动画是提升用户体验的关键要素。通过巧妙运用动画,我们能让应用界面更加生动、交互更加流畅,从而吸引用户的注意力并增强其使用粘性。鸿蒙系统为开发者提供了丰富且强大的动画开发能力&…

K8S学习之基础十:k8s中初始化容器和主容器

init容器和主容器 init容器和主容器的区别 初始化容器不支持 Readinessprobe,因为他们必须在pod就绪之前运行完成每个init容器必须运行成功,下一个才能够运行 # 定义两个初始化容器,完成后再运行主容器 vi pod-init.yaml apiVersion: v1 …

PostgreSQL 安装与使用

下载地址: EDB: Open-Source, Enterprise Postgres Database Management 安装图形化安装界面安装。安装完后将bin目录配置到系统环境变量 执行psql -h localhost -p 5432 -U postgres 密码在安装过程中设置的 ​ 0、修改密码 ALTER USER sonar WITH PASSWORD 123456; 1、新…

WPF高级 | WPF 应用程序部署与发布:确保顺利交付到用户手中

WPF高级 | WPF 应用程序部署与发布:确保顺利交付到用户手中 一、前言二、部署与发布基础概念2.1 部署的定义与目的2.2 发布的方式与渠道2.3 部署与发布的关键要素 三、WPF 应用程序打包3.1 使用 Visual Studio 自带的打包工具3.2 使用第三方打包工具 四、发布到不同…

Mybatis 的关联映射(一对一,一对多,多对多)

前言 在前面我们已经了解了,mybatis 的基本用法,动态SQL,学会使用mybatis 来操作数据库。但这些主要操作还是针对 单表实现的。在实际的开发中,对数据库的操作,常常涉及多张表。 因此本篇博客的目标:通过my…

在Linux中开发OpenGL——检查开发环境对OpenGL ES的支持

由于移动端GPU规模有限,厂商并没有实现完整的OpenGL特性,而是实现了它的子集——OpenGL ES。因此如果需要开发的程序要支持移动端平台,最好使用OpenGL ES开发。 1、 下载支持库、OpenGL ES Demo 1.1、下载PowerVRSDK支持库作为准备&#xff…