Java程序检查快乐号码

学习编写一个简单的Java程序,以验证给定的数字是否为快乐数字

1.什么是快乐数字

如果一个'1'数字反复被其数字的平方和所取代,则该数字将产生,称为幸福。换句话说,如果我们从快乐数字开始,并继续用数字平方和代替它,我们将达到1

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

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

数是:32

2 + 2 2 = 13

2 + 3 2 = 10

2 + 0 2 = 1

快乐数字的其他一些示例是7、28、100、320,依此类推。

2.确定快乐数的算法

要查找给定的数字是否满意–

  1. 计算数字中存在的每个数字的平方,并将其加到变量和中。
    • 如果得出的总和等于1,则给定数字为快乐数字。
    • 如果总和等于先前遇到的数字,则它是不快乐的数字。
  2. 否则将数字替换为数字的平方和。

3。 Java程序中查找快乐号码

package com.how2codex.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

参考:维基百科

saigon has written 1445 articles

Leave a Reply