Java 求水仙花数
引言
在计算机程序设计中,经常会遇到一些需要找到特定数值的问题。其中一个经典的问题是求解水仙花数。水仙花数是指一个三位数,其各位数字的立方和等于该数本身。在本文中,我们将使用 Java 编程语言来解决这个问题,并对水仙花数进行科普和解释。
水仙花数的定义
水仙花数,也被称为阿姆斯特朗数或自恋数,是指一个三位数,其各位数字的立方和等于该数本身。例如,153 是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153。
求解水仙花数的算法
要解决求解水仙花数的问题,我们可以使用以下算法步骤:
- 遍历所有的三位数。
- 对于每个三位数,将其个位、十位和百位数字提取出来。
- 计算每个数字的立方和。
- 如果立方和等于原始数值,则将该数值添加到结果集中。
- 输出结果集中的水仙花数。
下面是使用 Java 编程语言实现上述算法的示例代码:
import java.util.ArrayList;
import java.util.List;
public class NarcissisticNumber {
public static void main(String[] args) {
List<Integer> narcissisticNumbers = new ArrayList<>();
for (int i = 100; i <= 999; i++) {
int number = i;
int sum = 0;
while (number > 0) {
int digit = number % 10;
sum += Math.pow(digit, 3);
number /= 10;
}
if (sum == i) {
narcissisticNumbers.add(i);
}
}
System.out.println("水仙花数:");
for (int narcissisticNumber : narcissisticNumbers) {
System.out.println(narcissisticNumber);
}
}
}
代码解析
上述代码使用了一个 for 循环来遍历所有的三位数。在每个循环中,我们将三位数的每个数字依次提取出来,并计算其立方和。如果立方和等于原始数值,则将其加入结果集中。最后,我们将结果集输出到控制台。
代码中的关键点包括:
- 使用
for循环遍历所有的三位数。 - 使用求余和除法操作来提取每个数字。
- 使用
Math.pow方法计算数字的立方。 - 使用条件语句来判断立方和是否等于原始数值。
- 使用
ArrayList来存储水仙花数的结果集。
结果展示
运行上述代码,将得到以下输出结果:
水仙花数:
153
370
371
407
这些数字都是三位数中的水仙花数。
总结
本文通过使用 Java 编程语言提供了求解水仙花数的算法示例。对于任意一个三位数,我们可以使用该算法来判断其是否为水仙花数。水仙花数是一个有趣的数学问题,也是编程中常见的问题之一。通过本文的介绍,读者可以了解到水仙花数的定义、求解算法以及如何使用 Java 编程语言来实现该算法。希望本文对读者们对水仙花数有更深入的理解和应用。
参考资料
- [水仙花数 - 维基百科](
















