Java利用任意2种循环结构,实现“水仙花数”的查找和输出
时间: 2024-10-19 11:06:31 浏览: 14
Java经典问题算法大全
水仙花数是指一个 n 位数 (n≥3),它的每个位上的数字的 n 次幂之和等于它本身。例如:153 = 1^3 + 5^3 + 3^3。
以下是使用两种循环结构(for 和 while)实现水仙花数查找和输出的 Java 代码示例:
**使用 for 循环**:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
int num = 100; // 假设我们要查找的数是 100
for (int i = 10; i < num; i++) {
int sum = 0;
int temp = i;
while (temp != 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
if (sum == i) {
System.out.println(i);
}
}
}
}
```
**使用 while 循环**:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
int num = 100; // 假设我们要查找的数是 100
int sum = 0;
int temp = num;
while (temp != 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
if (sum == num) {
System.out.println(num); // 如果数字是水仙花数,则输出它
} else {
System.out.println(num + "不是水仙花数"); // 如果数字不是水仙花数,则输出信息
}
}
}
```
在这两个示例中,我们首先设定一个起始数字(例如,我们这里设定为 100),然后使用循环结构来遍历这个数字及其之前的所有数字。对于每个数字,我们计算它的每个位上的数字的立方和,如果这个和等于原来的数字,那么这个数字就是一个水仙花数,我们就输出它。如果遍历完所有可能的数字都没有找到水仙花数,我们就输出一个信息说明这个数字不是水仙花数。
阅读全文