用Java打印出1——1000内所有的 "水仙花数 "。所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
时间: 2024-09-20 20:02:07 浏览: 25
在Java中,可以编写一个循环遍历1到1000内的所有数字,对每一位进行立方计算,然后检验总和是否等于原数。以下是实现这一功能的简单代码:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int i = 100; i < 1000; ++i) {
String numString = String.valueOf(i);
int hundred = Character.getNumericValue(numString.charAt(0));
int ten = Character.getNumericValue(numString.charAt(1)) * 10;
int unit = Character.getNumericValue(numString.charAt(2));
int sumOfCubes = Math.pow(hundred, 3) + Math.pow(ten, 3) + Math.pow(unit, 3);
if (sumOfCubes == i) {
System.out.println(i + " 是一个水仙花数.");
}
}
}
}
```
这段代码首先将三位数转换为字符串,然后提取每个位上的数字,并计算它们的立方和。如果和等于原始数字,就打印出来。