【java打印出所有的 水仙花数】在Java编程中,水仙花数(Narcissistic Number)是一个有趣的数学概念。所谓水仙花数,是指一个n位数,其各位数字的n次幂之和等于该数本身。例如,153是一个三位数的水仙花数,因为 $1^3 + 5^3 + 3^3 = 153$。
本文将通过Java程序来找出并打印所有满足条件的水仙花数,并以总结加表格的形式呈现结果,确保内容原创、易懂且具有实用性。
一、水仙花数的定义
- 三位数水仙花数:每个数字的立方和等于自身。
- 四位数水仙花数:每个数字的四次方和等于自身。
- 以此类推,n位数的水仙花数为各位数字的n次幂之和等于该数。
二、Java实现思路
1. 遍历指定范围内的所有整数(如100到999之间);
2. 对于每个数,提取其各个位上的数字;
3. 计算各位数字的n次幂之和;
4. 判断是否与原数相等,若相等则输出。
三、Java代码示例
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int num = 100; num <= 999; num++) {
int original = num;
int sum = 0;
int temp = num;
while (temp > 0) {
int digit = temp % 10;
sum += Math.pow(digit, 3);
temp /= 10;
}
if (sum == original) {
System.out.println(original);
}
}
}
}
```
四、水仙花数总结表
数值 | 是否为水仙花数 | 说明 |
153 | 是 | $1^3 + 5^3 + 3^3 = 153$ |
370 | 是 | $3^3 + 7^3 + 0^3 = 370$ |
371 | 是 | $3^3 + 7^3 + 1^3 = 371$ |
407 | 是 | $4^3 + 0^3 + 7^3 = 407$ |
123 | 否 | 不满足条件 |
555 | 否 | 不满足条件 |
五、注意事项
- 上述代码仅适用于三位数的水仙花数,若需扩展到更多位数,需根据位数动态计算幂次。
- 水仙花数在不同位数下数量有限,实际应用中可结合算法优化提高效率。
通过以上方法,我们可以轻松地在Java中找到并打印出所有符合条件的水仙花数。这种练习不仅有助于理解循环和数学运算的结合,也提升了对数值处理的实际应用能力。