用Java求1000以内的水仙花数 假设153=1*1*1+3*3*3+5*5*5所以153是水仙花数
时间: 2024-06-25 08:01:09 浏览: 161
在Java中,水仙花数(也称为 narcissistic number 或 pluperfect digital invariant)是指一个三位数,其各位数字立方和等于该数本身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
下面是使用Java编写的一个简单方法来找出1000以内的所有水仙花数:
```java
public class NarcissisticNumbers {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
if (isNarcissistic(i)) {
System.out.println(i);
}
}
}
// 判断一个数是否为水仙花数的方法
public static boolean isNarcissistic(int num) {
int sum = 0;
String str = String.valueOf(num); // 将数字转换为字符串便于取每一位数字
for (int digit : str.toCharArray()) { // 遍历每一位
sum += Integer.parseInt(String.valueOf(digit)); // 计算立方和
}
return sum == num; // 如果立方和等于原数,则返回true
}
}
```
在这个程序中,我们遍历从100到999的所有三位数,对每一位取立方然后求和,如果和等于原数,那么这个数就是水仙花数。
阅读全文