用java 在屏幕上输出所有的水仙花数,在0~10000范围内
时间: 2024-05-15 12:19:58 浏览: 59
水仙花数是指一个n位正整数,它的每个位上的数字的n次幂之和等于它本身。比如说,153是一个水仙花数,因为$1^3+5^3+3^3=153$。
下面是使用Java输出0~10000范围内的所有水仙花数的代码:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int i = 0; i <= 10000; i++) {
if (isNarcissisticNumber(i)) {
System.out.println(i);
}
}
}
private static boolean isNarcissisticNumber(int n) {
String s = String.valueOf(n);
int len = s.length();
int sum = 0;
for (int i = 0; i < len; i++) {
int digit = Character.digit(s.charAt(i), 10);
sum += Math.pow(digit, len);
}
return sum == n;
}
}
```
代码中使用了一个isNarcissisticNumber方法来判断一个数是否是水仙花数,具体实现是将这个数转换为字符串,然后遍历每个数字,计算它的n次幂之和。最后比较这个和是否等于原来的数即可。在主方法中,使用for循环遍历0~10000之间的所有数,对每个数调用isNarcissisticNumber方法来判断是否是水仙花数,如果是则输出。
阅读全文