找出所有的水仙花数,用最简单的方式
时间: 2024-09-26 20:04:01 浏览: 22
找出所有的水仙花数(也称为 narcissistic number 或者 pluperfect digital invariant)是指一个三位数,其各位数字的立方之和等于该数本身。例如,153 是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153。
要编写一个简单的 Java 方法来查找所有小于给定范围内的水仙花数,你可以使用以下代码:
```java
public class NarcissisticNumbers {
public static List<Integer> findNarcissisticNumbers(int limit) {
List<Integer> result = new ArrayList<>();
for (int i = 100; i < limit; i++) {
int sumOfCubes = 0;
String numString = Integer.toString(i);
for (char digit : numString.toCharArray()) {
sumOfCubes += Character.getNumericValue(digit) * Character.getNumericValue(digit) * Character.getNumericValue(digit);
}
if (sumOfCubes == i) {
result.add(i);
}
}
return result;
}
public static void main(String[] args) {
int maxRange = 1000; // 可根据需要调整
List<Integer> narcissisticNumbers = findNarcissisticNumbers(maxRange);
System.out.println("水仙花数有: " + narcissisticNumbers);
}
}
```
在这个程序中,我们遍历从100到指定范围的所有三位数,计算每一位的立方和并与原数比较。如果它们相等,就添加到结果列表中。`main`方法用于测试这个功能。
阅读全文