专题一快乐数

news/2025/2/24 10:19:49/

1.题目

2.题目分析

一个数,假设是17,那么按照题意就是把19变成1和9,然后分别平方在相加一起就是82,然后再重复就是64+4为68,再来一次就是100,这时重复多少次都是一样的为1,则19就是快乐数。

3.算法原理

从19快乐数和2非快乐数可以猜测出规律,且题目说了是无限循环1或者不是1,但是都是循环,也就是说会形成一个环状,那么就可以用双指针的操作,快慢指针,快的指针走俩步,慢的指针走一步,快指针会追上慢指针,再判断此时的值是否为一,因为快乐数一定是1.

 

4.代码实现

class Solution {
public:int number(int n){int sum=0;while(n){int t=n%10;sum+=t*t;n=n/10;}return sum;}bool isHappy(int n) {int quick=number(n);int slow=n;while(quick!=slow){quick=number(number(quick));slow=number(slow);}return slow==1;}
};

5.补充

简单介绍鸽巢原理,n+1各鸽子,n个巢穴,一定会有一个巢穴多一个鸽子

则下图的数字,题意有要求范围大小,则取超过限制的值,全是9则下一个数一定是最大的平方和,那么数字的范围就确定了,设x,则当x变化811次数后,就一定会跟这个范围的值重合,也就是会形成环状。

 


http://www.ppmy.cn/news/1574609.html

相关文章

【JavaEE进阶】MyBatis通过注解实现增删改查

目录 🍃前言 🍀打印日志 🌴传递参数 🎋增(Insert) 🚩返回主键 🎄删(Delete) 🌲改(Update) 🌳查(Select) 🚩起别名 🚩结果映射 🚩开启驼…

梯度计算(MATLAB和pytorch实例)

梯度计算概述梯度计算的原理对于离散数据而言 一维离散数据的梯度近似 前向差分(Forward Difference)后向差分(Backward Difference)中心差分(Central Difference) 二维离散数据的梯度近似多维扩展&#xf…

Java 使用websocket

添加依赖 <!-- WebSocket 支持 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dependency>添加配置类 Configuration public class WebSocketConfig {B…

HAProxy介绍与编译安装

目录 1、HAProxy介绍 2、HAProxy编译安装 Centos 基础环境 Ubuntu 基础环境 编译安装HAProxy 验证HAProxy版本 HAProxy启动脚本 配置文件 启动haproxy 验证haproxy状态 查看haproxy的状态页面 1、HAProxy介绍 HAProxy是法国开发者 威利塔罗(Willy Tarreau) 在2000年…

2024华为OD机试真题-单词接龙(C++)-E卷B卷-100分

2024华为OD机试最新题库-(C卷+D卷+E卷)-(JAVA、Python、C++) 目录 题目描述: 输入描述: 输出描述: 示例1 示例2 题目解析 考点 代码 c++ 题目描述: 单词接龙的规则是:可用于接龙的单词首字母必须要前一个单词的尾字母相同; 当存在多个首字母相同的单词时,取…

不同activity的mViewModel是复用同一个的还是每个activity都是创建新的ViewModel

不同activity的mViewModel是复用同一个的还是每个activity都是创建新的ViewModel&#xff1f; DeepSeek R1 思考 16 秒 思考过程 用户的问题是关于在Android开发中&#xff0c;不同的Activity是否应该复用同一个ViewModel还是每个Activity都创建新的。首先&#xff0c;我需要…

【HarmonyOS Next】拒绝权限二次申请授权处理

【HarmonyOS Next】拒绝权限二次申请授权处理 一、问题背景&#xff1a; 在鸿蒙系统中&#xff0c;对于用户权限的申请&#xff0c;会有三种用户选择方式&#xff1a; 1.单次使用允许 2.使用应用期间&#xff08;长时&#xff09;允许 3.不允许 当用户选择不允许后&#xff0…

【C++八股】内存对⻬

内存对齐是指编译器按照特定规则安排数据在内存中的存储位置&#xff0c;以提高程序的执行效率和可移植性。 内存对齐的原因&#xff1a; 1. 性能优化&#xff1a; 现代处理器通常要求数据在内存中按照特定的边界对齐&#xff0c;以提高内存访问效率。 如果数据未对齐&#x…