用Java输出水仙花数问题
时间: 2023-12-07 18:05:02 浏览: 79
java 求水仙花数
5星 · 资源好评率100%
好的,下面是Java代码实现:
```java
public class Main {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
if (isNarcissisticNumber(i)) {
System.out.print(i + " ");
}
}
}
// 判断一个数是否是水仙花数
public static boolean isNarcissisticNumber(int n) {
int sum = 0;
int temp = n;
int len = String.valueOf(n).length(); // 获取n的位数
while (temp > 0) {
int digit = temp % 10;
sum += Math.pow(digit, len);
temp /= 10;
}
return sum == n;
}
}
```
首先通过循环遍历100到999之间的所有三位数,然后调用`isNarcissisticNumber`方法判断该数是否是水仙花数。`isNarcissisticNumber`方法中,首先通过循环取出该数的每一位数字,然后计算每一位数字的len次方的和,最后判断该和是否等于原数n。如果相等,则是水仙花数,返回`true`,否则不是水仙花数,返回`false`。最后将所有水仙花数输出即可。
阅读全文