水仙花数(Narcissistic number),又称自幂数,是指一个n位数,其各个位上的数字的n次幂之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。那么,如何用Java来实现这个经典的算法呢?让我们一起探索一下吧!
首先,我们需要定义一个范围,以找出在这个范围内所有的水仙花数。例如,我们可以从1开始到999,因为三位数是最大的水仙花数。
接下来,我们可以编写一个循环,遍历这个范围内的每一个数,并检查它是否满足水仙花数的条件。为了实现这一点,我们可以将每个数字拆分成它的各个位数,然后计算这些位数的立方和,最后比较这个和与原数是否相等。
下面是一个简单的Java代码示例,展示了如何找到1到999之间的所有水仙花数:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int num = 1; num <= 999; num++) {
if (isNarcissistic(num)) {
System.out.println(num);
}
}
}
public static boolean isNarcissistic(int num) {
int originalNum = num;
int sum = 0;
while (num > 0) {
int digit = num % 10;
sum += Math.pow(digit, 3);
num /= 10;
}
return sum == originalNum;
}
}
```
通过这段代码,我们能够轻松地找到指定范围内的所有水仙花数。希望这个经典示例对你理解Java编程有所帮助!🌈✨