Java编写所有的水仙花数
时间: 2024-02-24 14:55:38 浏览: 104
以下是使用Java编写的获取所有水仙花数的程序:
```java
public class NarcissisticNumbers {
public static void main(String[] args) {
int n = 3; // 水仙花数的位数
int start = (int) Math.pow(10, n - 1); // 起始数
int end = (int) Math.pow(10, n) - 1; // 结束数
for (int i = start; i <= end; i++) {
if (isNarcissisticNumber(i)) {
System.out.println(i);
}
}
}
// 判断一个数是否为水仙花数
public static boolean isNarcissisticNumber(int num) {
int sum = 0;
int n = String.valueOf(num).length();
int temp = num;
while (temp > 0) {
int digit = temp % 10;
sum += Math.pow(digit, n);
temp /= 10;
}
return sum == num;
}
}
```
其中,`isNarcissisticNumber` 方法用于判断一个数是否为水仙花数,它的实现是将该数的每一位数的 n 次方加起来,如果等于该数本身,则该数是水仙花数。主函数中,先定义水仙花数的位数 n,然后计算出起始数和结束数,遍历这个范围内的所有数,对每个数调用 `isNarcissisticNumber` 方法进行判断,如果是水仙花数,则输出。
阅读全文