Special Number in Java

2025 年 5 月 6 日 | 阅读 3 分钟

在本节中,我们将学习什么是特殊数字,并创建 Java 程序 来检查给定的数字是否为特殊数字特殊数字程序经常出现在 Java 编码测试和学术中。

特殊数字

如果一个数字(N)的各位数字的阶乘之和等于该数字本身,则该数字(N)称为特殊数字。

Special Number in Java

让我们通过一个例子来理解。

特殊数字示例

考虑数字 145 并检查它是否为特殊数字。

数字的各位是:1, 4, 5

各位数字的阶乘

!1 = 1

!4 = 4*3*2*1 = 24

!5 = 5*4*3*2*1 = 120

各位数字的阶乘之和 = 1 + 24 + 120 = 145

将各位数字的阶乘之和与给定的数字进行比较,即 145 = 145。我们观察到两者相等。

因此,给定的数字 145 是一个特殊数字。

让我们检查另一个数字 1034

数字的各位是:1, 0, 3, 4

各位数字的阶乘

!1 = 1

!0 = 1

!3 = 3*2*1 = 6

!4 = 4*3*2*1 =24

各位数字的阶乘之和 = 1 + 1 + 6 + 24 = 32

将各位数字的阶乘之和与给定的数字进行比较,即 32 ≠ 1034。我们观察到各位数字的阶乘之和不等于给定的数字。

因此,给定的数字 1034 不是特殊数字。

其他一些特殊数字是 2, 40585 等。

查找特殊数字的步骤

  1. 读取或初始化一个数字(N)。
  2. 如果数字有多位,则将给定的数字(N)分解成各位数字。
  3. 求所有数字的阶乘。
  4. 将阶乘相加并存储在一个变量(s)中。
  5. 将总和与给定的数字(N)进行比较。
  6. 如果总和等于数字本身,则该数字(N)是特殊数字,否则不是。

让我们在 Java 程序中实现上述逻辑。

特殊数字 Java 程序

SpecialNumberExample1.java

输出 1

Enter a number: 40585
40585 is a special number.

输出 2

Enter a number: 176
176 is not a special number.

范围内的特殊数字

SpecialNumberExample2.java

输出

Enter the lower range: 1
Enter the upper range: 100000
1	2	145	40585