查快乐号码的Java程序

位置:首页>文章>详情   分类: Java教程 > 编程技术   阅读(285)   2023-06-26 07:54:18

学习编写一个简单的 java 程序 来验证给定的数字是否是快乐数字

1.什么是开心号

如果一个数在重复被其数字的平方和替换时会产生 '1',则该数被称为快乐数。换句话说,如果我们从 Happy Number 开始并继续用数字平方和替换它,我们将达到 1

如果此过程导致数字无限循环,则该数字称为不快乐的数字(或悲伤的数字)。

例如,请考虑以下数字 32 的示例。

数量是:32

32 + 22 = 13

12 + 32 = 10

12 + 02 = 1

其他一些快乐数字的例子是 7、28、100、320 等等。

2. 确定快乐数的算法

查找给定数字是否快乐 –

  1. 计算数字中每个数字的平方并将其添加到变量总和中。
    • 如果结果和等于 1,则给定数字是一个快乐数字。
    • 如果和之前遇到的数相等,则为不快乐数。
  2. 否则将数字替换为数字的平方和。

3. Java程序找快乐号码

package com.cundage.java8.example;

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

public class Main 
{ 
	public static void main(String[] args) {
		
		System.out.println("32 is happy number " + isHappyNumber(32));
		System.out.println("7  is happy number " + isHappyNumber(7));
		System.out.println("28 is happy number " + isHappyNumber(28));
		
		System.out.println("30 is happy number " + isHappyNumber(30));
		System.out.println("9  is happy number " + isHappyNumber(9));
		System.out.println("24 is happy number " + isHappyNumber(24));
	}
	
    static boolean isHappyNumber(int numberToCheck) 
    { 
    	Set<Integer> uniqueNumbersEncounterd = new HashSet<Integer>();
       
    	//Just to avoid any infinite loop
    	while (uniqueNumbersEncounterd.add(numberToCheck))
        {
            int value = 0;
            while (numberToCheck > 0)
            {
                value += Math.pow(numberToCheck % 10, 2);
                numberToCheck /= 10;
            }
            numberToCheck = value;
        }

        return numberToCheck == 1;
    } 
}

程序输出。

32 is happy number true
7  is happy number true
28 is happy number true

30 is happy number false
9  is happy number false
24 is happy number false

快乐学习!!

参考:维基百科

标签2: Java Examples
地址:https://www.cundage.com/article/happy-unhappy-numbers.html

相关阅读

Spring Boot Data JPA Query By Example 教程展示了如何使用 Spring Data JPA Query By Example 技术创建查询。 春天 是用于创建...
学习将正则表达式编译成java.util.function.Predicate。当您想对匹配的标记执行某些操作时,这会很有用。 将正则表达式转换为谓词 我有不同域的电子邮件列表,我只想对域名为“...
Learn to 删除单词之间多余的空格 from a 细绳 in Java. Given 3 examples 用一个空格替换多个空格 using a regular expression, ...
学习编写一个简单的 java 程序 来验证给定的数字是否是快乐数字。 1.什么是开心号 如果一个数在重复被其数字的平方和替换时会产生 '1',则该数被称为快乐数。换句话说,如果我们从 Happy...
Learn to 将 byte[] 数组转换为字符串 and 将 String 转换为 byte[] 数组 in Java with examples. Conversion between b...
现代 JBoss BRMS 时代最古老的业务逻辑演示是 2012 年 6 月推出的 Customer Evaluation example。 当时,JBoss BRMS 包括规则、事件和流程。
Learn to 将文本文件读入字符串 in Java. Following examples use 文件.readAllBytes(), 文件.行() (to 逐行阅读) and 档案阅读器...
从系统控制台运行 Java 类(例如 Hello world 应用程序)时,我们可能会遇到此错误(无法找到或加载主类)。我们收到此错误是因为我们错误地尝试使用 main() 命令在类中运行 ja...
这是名为“Functional Java by Example”系列的第 2 部分。 我在本系列的每个部分中发展的示例是某种处理文档的“提要处理程序”。
学习使用 Java 8 Stream API 编写程序以找到第一个质数,其中 N 是应用程序的任何给定输入数。 1.素数算法 质数 (P) 是一个大于 1 的数,它的因数只有 1 和数 (P) ...