java输出所有的水仙花数,水仙花数是指一个3位数,其各个位上数字立方和等于其本身 例如:153 = 1*1*1 + 3*3*3 + 5*5*5 使用for和while2种语法进行代码书写
时间: 2024-09-18 08:06:48 浏览: 54
在Java中,可以编写两个函数分别使用for和while循环来找出所有的水仙花数。以下是代码示例:
**使用for循环**:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int num = 100; num <= 999; num++) {
if (isNarcissistic(num)) {
System.out.println(num);
}
}
}
// 检查是否为水仙花数的方法
private static boolean isNarcissistic(int n) {
int sumOfCubes = 0;
String strNum = Integer.toString(n);
for (char digit : strNum.toCharArray()) {
int digitValue = Character.getNumericValue(digit);
sumOfCubes += Math.pow(digitValue, 3);
}
return sumOfCubes == n;
}
}
```
**使用while循环**:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
int num = 100;
while (num <= 999) {
if (isNarcissistic(num)) {
System.out.println(num);
}
num++;
}
}
// 同样的检查函数
private static boolean isNarcissistic(int n) {
// ... (内容同上)
}
}
```
在这个代码中,`isNarcissistic`函数用于计算并验证一个整数是否是水仙花数。然后,在主函数中,我们遍历从100到999的所有三位数,并对每个数调用这个方法。
阅读全文