打印1到100之间的所有快乐数

2025 年 1 月 8 日 | 阅读 5 分钟

说明

在此程序中,我们需要显示1到100之间的所有快乐数。

快乐数

快乐数可以定义为这样一种数,当它被其数字的平方和重复替换时,会得到1。如果这个过程导致一个包含4的数字的无限循环,那么这个数就被称为不快乐数。

例如,32是一个快乐数,因为该过程如下得到1:

公式

32 + 22 = 13
12 + 32 = 10
12 + 02 = 1

其他快乐数的例子有7、28、100、320等。

不快乐数将导致一个循环:4, 16, 37, 58, 89, 145, 42, 20, 4, ...

要判断一个给定的数是否为快乐数,计算数字中每个数字的平方并将其加到一个变量sum中。如果得到的sum等于1,那么给定的数就是快乐数。如果sum等于4,那么这个数就是不快乐数。否则,用数字的平方和替换这个数。

算法

  1. isHappyNumber()函数用于确定一个给定的数是否为快乐数。
    1. 如果这个数大于0,通过将这个数除以10来计算余数rem。
    2. 计算 rem 的平方并将其添加到变量 sum 中。
    3. 将数字除以 10。
    4. 重复步骤 a 到 c,直到计算出数字中存在的所有数字的平方和。
    5. 最后,返回总和。
  2. 显示1到100之间的所有快乐数:
    1. 从1到100开始循环,然后为1到100的每个值调用isHappyNumber()方法,并将返回值存储到变量result中。
    2. 如果结果既不等于 1 也不等于 4,则调用 isHappyNumber()。
    3. 否则,如果result等于1,这意味着这个数是快乐数,并将其显示出来。

解决方案

Python

输出

 List of happy numbers between 1 and 100: 
1 7 10 13 19 23 28 31 32 44 49 68 70 79 82 86 91 94 97 100 

C

输出

List of happy numbers between 1 and 100: 
1 7 10 13 19 23 28 31 32 44 49 68 70 79 82 86 91 94 97 100 

JAVA

输出

List of happy numbers between 1 and 100: 
1 7 10 13 19 23 28 31 32 44 49 68 70 79 82 86 91 94 97 100 

C#

输出

List of happy numbers between 1 and 100: 
1 7 10 13 19 23 28 31 32 44 49 68 70 79 82 86 91 94 97 100 

PHP

输出

List of happy numbers between 1 and 100: 
1 7 10 13 19 23 28 31 32 44 49 68 70 79 82 86 91 94 97 100
 
下一主题#