怎么用java代码找到所有水仙花数
时间: 2023-08-03 07:10:29 浏览: 72
求出所有的水仙花数.java
水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如:153=1^3+5^3+3^3,370=3^3+7^3+0^3。
以下是Java代码实现:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
int start = 100;
int end = 999;
for (int i = start; i <= end; i++) {
int num = i;
int sum = 0;
int n = getN(num);
while (num > 0) {
int digit = num % 10;
sum += Math.pow(digit, n);
num /= 10;
}
if (sum == i) {
System.out.println(i);
}
}
}
private static int getN(int num) {
int count = 0;
while (num > 0) {
count++;
num /= 10;
}
return count;
}
}
```
代码中,我们先设置了起始数和终止数,然后用for循环遍历每个n位数。在循环体中,我们先计算出n的值,然后用while循环遍历每个数字位,计算出每个数字位的n次幂之和。最后,判断这个和是否等于原数,如果相等,就输出这个数。
注意,这里只列出了一个简单的实现方法,还有其他更高效的方式来找到所有水仙花数。
阅读全文