学习编写一个简单的 java 程序 来验证给定的数字是否是快乐数字。
如果一个数在重复被其数字的平方和替换时会产生 '1'
,则该数被称为快乐数。换句话说,如果我们从 Happy Number 开始并继续用数字平方和替换它,我们将达到 1
如果此过程导致数字无限循环,则该数字称为不快乐的数字(或悲伤的数字)。
例如,请考虑以下数字 32 的示例。
数量是:32
32 + 22 = 13
12 + 32 = 10
12 + 02 = 1
其他一些快乐数字的例子是 7、28、100、320 等等。
查找给定数字是否快乐 –
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