输出所有的水仙花数,水仙花数是指一个3位数,其各个位上数字立方和等于其本身 例如:153 = 1*1*1 + 3*3*3 + 5*5*5 使用for和while2种语法进行代码书写
时间: 2024-09-19 14:12:22 浏览: 21
在Java中,我们可以使用`for`和`while`循环来找出所有三位数的水仙花数。这里提供两种版本的代码示例:
**使用for循环:**
```java
public class NarcissisticNumbers {
public static void main(String[] args) {
int limit = 999;
for (int num = 100; num <= limit; num++) {
if (isNarcissistic(num)) {
System.out.println(num);
}
}
}
private static boolean isNarcissistic(int number) {
int sumOfCubes = 0;
String digits = String.valueOf(number);
for (char digit : digits.toCharArray()) {
int digitValue = Character.getNumericValue(digit);
sumOfCubes += Math.pow(digitValue, 3);
}
return sumOfCubes == number;
}
}
```
**使用while循环:**
```java
public class NarcissisticNumbers {
public static void main(String[] args) {
int num = 100, limit = 999;
while (num <= limit) {
if (isNarcissistic(num)) {
System.out.println(num);
}
num++;
}
}
private static boolean isNarcissistic(int number) {
int sumOfCubes = 0;
String digits = String.valueOf(number);
for (char digit : digits.toCharArray()) {
int digitValue = Character.getNumericValue(digit);
sumOfCubes += Math.pow(digitValue, 3);
}
return sumOfCubes == number;
}
}
```
在这两个例子中,我们都有一个辅助函数`isNarcissistic`来检查是否是水仙花数,然后通过循环遍历100到999之间的每个整数,并打印出符合条件的数。