快乐数(Java)

2023-11-20

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

「快乐数」定义为:

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

示例 1:
输入:19
输出:true
解释:
1^{2} + 9^{2} = 82
8^{2} + 2^{2} = 68
6^{2} + 8^{2} = 100
1^{2} + 0^{2}0^{2} = 1

示例 2:
输入:num = 2
输出:false

提示:

1 <= n <= 2^{31} - 1

package com.loo;

import java.util.HashSet;
import java.util.Set;

public class HappyNums {

	public static void main(String[] args) {
		System.out.println(isHappyNums(19));
	}
	
	public static boolean isHappyNums(int num) {
		Set<Integer> set = new HashSet<Integer>();
		while (true) {
			int n = getNums(num);
			if (n == 1) {
				return true;
			}
			if (set.contains(n)) {
				return false;
			}
			set.add(n);
			num = n;
		}
	}
	
	public static int getNums(int num) {
		int sum = 0;
		while (num!=0) {
			sum += (num % 10) * (num %10);
			num /= 10;
		}
		return sum;
	}

}

时间和空间复杂度都是 O(n)

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

快乐数(Java) 的相关文章

  • 如何在 JFace 的 TableViewer 中创建复选框?

    我创建了一个包含两列的 tableViewer 我想将其中一列设为复选框 为此 我创建了一个 CheckBoxCellEditor 但我不知道为什么它不起作用 名为 tableName 的列显示其值正常 色谱柱规格如下 String COL
  • Java程序中的数组奇怪的行为[重复]

    这个问题在这里已经有答案了 我遇到了这个 Java 程序及其以意想不到的方式运行 以下程序计算 int 数组中元素对之间的差异 import java util public class SetTest public static void
  • 在Windows上安装Java 11 OpenJDK(系统路径问题)

    Java 11 最近发布了 众所周知 这个版本没有安装文件 当然 要在没有安装程序的情况下安装 Java 我将系统设置 PATH 和 JAVA HOME 设置为解压缩 Java 11 的文件夹的地址 根据对类似问题的已接受回复建议 唯一的事
  • java.io.IOException: %1 不是有效的 Win32 应用程序

    我正在尝试对 XML 文档进行数字签名 为此我有两个选择 有一个由爱沙尼亚认证中心为程序员创建的库 还有一个由银行制作的运行 Java 代码的脚本 如果使用官方 认证中心 库 那么一切都会像魅力一样进行一些调整 但是当涉及到银行脚本时 它会
  • Convert.FromBase64String 方法的 Java 等效项

    Java 中是否有相当于Convert FromBase64String http msdn microsoft com en us library system convert frombase64string aspx which 将指
  • java中删除字符串中的特殊字符?

    如何删除字符串中除 之外的特殊字符 现在我用 replaceAll w s 它删除了所有特殊字符 但我想保留 谁能告诉我我该怎么办 Use replaceAll w s 我所做的是将下划线和连字符添加到正则表达式中 我添加了一个 连字符之前
  • 如何为 Gson 编写自定义 JSON 反序列化器?

    我有一个 Java 类 用户 public class User int id String name Timestamp updateDate 我收到一个包含来自 Web 服务的用户对象的 JSON 列表 id 1 name Jonas
  • Java 页面爬行和解析之 Crawler4j 与 Jsoup

    我想获取页面的内容并提取其中的特定部分 据我所知 此类任务至少有两种解决方案 爬虫4j https github com yasserg crawler4j and Jsoup http jsoup org 它们都能够检索页面的内容并提取其
  • jdbc4.MySQLSyntaxErrorException:数据库中不存在表

    我正在使用 SpringBoot 开发一个网络应用程序 这是我的application properties文件来指定访问数据库的凭据 spring datasource driverClassName com mysql jdbc Dri
  • 在具有相同属性名称的不同数据类型上使用 ModelMapper

    我有两节课说Animal AnimalDto我想用ModelMapper将 Entity 转换为 DTO 反之亦然 但是对于具有相似名称的一些属性 这些类应该具有不同的数据类型 我该如何实现这一目标 动物 java public class
  • Java中接口作为方法参数

    前几天去面试 被问到了这样的问题 问 反转链表 给出以下代码 public class ReverseList interface NodeList int getItem NodeList nextNode void reverse No
  • 反思 Groovy 脚本中声明的函数

    有没有一种方法可以获取 Groovy 脚本中声明的函数的反射数据 该脚本已通过GroovyShell目的 具体来说 我想枚举脚本中的函数并访问附加到它们的注释 Put this到 Groovy 脚本的最后一行 它将作为脚本的返回值 a la
  • 如何在 JFreeChart TimeSeries 图表上显示降雨指数和温度?

    目前 我的 TimeSeries 图表每 2 秒显示一个位置的温度 现在 如果我想每2秒显示一次降雨指数和温度 我该如何实现呢 这是我的代码 import testWeatherService TestWeatherTimeLapseSer
  • 制作java包

    我的 Java 类组织变得有点混乱 所以我要回顾一下我在 Java 学习中跳过的东西 类路径 我无法安静地将心爱的类编译到我为它们创建的包中 这是我的文件夹层次结构 com david Greet java greeter SayHello
  • org.jdesktop.application 包不存在

    几天以来我一直在构建一个 Java 桌面应用程序 一切都很顺利 但是今天 当我打开Netbeans并编译文件时 出现以下编译错误 Compiling 9 source files to C Documents and Settings Ad
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • 当单元格内的 JComboBox 中有 ItemEvent 时,如何获取 CellRow

    我有一个 JTable 其中有一列包含 JComboBox 我有一个附加到 JComboBox 的 ItemListener 它会根据任何更改进行操作 但是 ItemListener 没有获取更改的 ComboBox 所在行的方法 当组合框
  • 如何配置eclipse以保持这种代码格式?

    以下代码来自 playframework 2 0 的示例 Display the dashboard public static Result index return ok dashboard render Project findInv
  • 中断连接套接字

    我有一个 GUI 其中包含要连接的服务器列表 如果用户单击服务器 则会连接到该服务器 如果用户单击第二个服务器 它将断开第一个服务器的连接并连接到第二个服务器 每个新连接都在一个新线程中运行 以便程序可以执行其他任务 但是 如果用户在第一个
  • Swagger/Openapi-Annotations:如何使用 $ref 生成 allOf?

    我正在生成 Rest 端点 包括添加OpenAPI Swagger对生成的代码进行注释 虽然它对于基本类型运行得很好 但我在自定义类方面遇到了一些问题 现在我有很多自定义类的重复架构条目 使用 Schema 实现 MyClass class

随机推荐

  • leetcode刷题方法

    leetcode刷题方法 一 范围内的200题 二 刷题步骤 三 算法思路 四 更新 1 12日留 此文章借鉴 陈同学在搬砖 微信公众号的一篇文章 https mp weixin qq com s xr2abGNv8wDZJ qyN4Kew
  • HTML、CSS、JavaScript分别实现什么功能?

    学习Web前端开发基础技术需要掌握 HTML CSS JavaScript 那么这三个都是分别实现什么功能的呢 下面和小编一起来看看吧 一 HTML是网页内容的载体 内容就是网页制作者放在页面上想要让用户浏览的信息 可以包含文字 图片 视频
  • Springboot整合dubb3+nacos作注册中心(基础篇)

    1 首先看下项目结构如下 2 新建父工程springboot dubbo模块 pom文件如下
  • 亲测可用,SpringBoot项目打印接口请求信息日志,CommonsRequestLoggingFilter实现方式

    文章目录 需求背景 效果图 实现思路 其他方案对比 优缺点分析 具体实现 需求背景 线上项目出现bug时 可以通过接口的请求参数来排查定位问题 和业务方battle时 能够证明他是自己操作的问题 效果图 实现思路 Spring提供了Comm
  • 重试机制的实现(4m,10m,10m,1h,2h,6h,15h)

    项目场景 由于我们现在所做的项目有有很多的外放接口供代理商调用 但是有些接口的响应并不是实时返回的 此时我们就需要使用回调接口的方式 将信息响应给代理商 在这期间可能会出网络不稳定等其他情况 导致回调接口调用失败 所以需要特定的回调重试机制
  • 数据库系统原理---封锁

    封锁 封锁粒度 MySQL中提供了两种封锁粒度 行级锁和表级锁 应该尽量的只锁定需要修改的那部分数据 而不是所有的资源 锁定的数据量越少 发生锁争用的可能性就越小 系统的并发程度就越高 加锁需要消耗资源 锁的各种操作 包括锁的获取 释放锁
  • org.elasticsearch.bootstrap.StartupException: java.lang.IllegalArgumentExceptio

    这是我转载的一片文章 解决了我的问题 所以记录一下 话不多说 见正文吧 elasticsearch安装踩过的那些坑 坑1 failed to send join request to master 原因 你复制了某个节点的elasticse
  • supervisor系列:5、日志

    supervisor系列 5 日志 文章目录 supervisor系列 5 日志 1 活动日志 1 1 活动日志输出示例 1 2 活动日志等级 1 3 活动日志轮换 2 子进程日志 2 1 捕获模式 supervisord执行的主要任务之一
  • 一文带你从IntelliJ IDEA中一键生成Controller、Service、Dao、Model层代码,真的不看看吗?

    前言 EasyCode插件介绍与安装 简介EasyCode是基于IntelliJ IDEA开发的代码生成插件 支持自定义任意模板 Java html js xml 只要是与数据库相关的代码都可以通过自定义模板来生成 支持数据库类型与java
  • LoadRunner用户验证码和验证码使用脚本

    Action 定义Md5变量用来存放使用md5加密后的字符串 char Md5 33 存放包含用户登录信息的URL char str 174 存放用户账户信息 char str1 92 存放当前时间 int t1 int a char Me
  • 外观设计模式

    外观设计模式 根据实际案例分析外观模式 Facade 示例 业务与设计模式落地案例 根据实际案例分析外观模式 Facade 案例 假设一个放电影功能 在播放电影时 需要放下窗帘 打开空调 打开播放机 打开音响 考虑用户观影时间较长时 提供暂
  • frp实现内网穿透(一) 最简配置

    frp实现内网穿透 一 最简配置 内网环境现在可以说非常的普遍 如果连接控制的内网环境设备的话 就变得非常不方便 像端口映射 dmz主机已经不能满足我们的要 不过好在现在实现内网穿透的工具也很多 在这里就记录下一这款配置简单 功能强大的内网
  • 线性代数-初等行变换与初等行矩阵

    定义 初等行变换 在矩阵的行上进行倍加 倍乘 对换变换 初等行矩阵 在单位矩阵上应用初等行变换得到的矩阵 初等行矩阵乘上矩阵 就相当于在矩阵上实施了对应的初等行变换 以矩阵为例 倍加 将第二行乘2加在第三行上 r3 2 r2 r3 所用的初
  • VMWare安装Windows10出现以下问题

    VMWare虚拟机安装Win10出现 Attempting to start up from 直接上图 选择ISO镜像以后 开启虚拟机出现以下界面 等待一会没有操作以后出现以下界面 解决方法 1 关闭虚拟机电源 一定要关闭 2 找到该虚拟机
  • 阿里巴巴为什么不用 ZooKeeper 做服务发现?

    原文地址 https yq aliyun com articles 599997
  • Git 多个GitHub账号配置和多个Hexo博客地址配置

    文章目录 需求场景 方法 TL DR 非图形界面方法 1 生成密钥 2 配置config 3 添加新的 SSH 密钥 到 SSH agent 4 验证配置 5 配置仓库设置 5 1 删除全局配置 5 2 设置local配置 6 示例 6 1
  • Linux-centos花生壳实现内网穿透

    Linux centos花生壳实现内网穿透 官网教程 1 安装花生壳 下载网址 点击复制就可以复制下载命令了 wget https dl oray com hsk linux phddns 5 2 0 amd64 rpm O phddns
  • 递归寻找第n位数字

    编写递归函数digit n j 返回整数n的从右边开始的第j位数字 首先来看非递归法 只需用n 10 j 1 10即可 include
  • linux连接Xshell

    一 下载和安装Xshell 1 下载Xshell 官网下载地址 有时需要科学上网 https www netsarang com en all downloads 点击下载 教育版 2 安装 和软件安装方式一样 二 Xshell连接linu
  • 快乐数(Java)

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