对于三位整数,如果各位数字的立方和等于其自身,称之为水仙花数,写循环程序求出 100---999 之间的所有水仙花数
时间: 2024-11-09 17:23:07 浏览: 18
C语言中的水仙花数,是指一个 n 位数,它的每个位上的数字的n次方之和等于它本身
为了找到100到999范围内的所有水仙花数,我们可以使用一个简单的for循环遍历这个范围内的每个三位数,然后检查每一位的立方是否相加等于原数本身。以下是一个Java程序来实现这一功能:
```java
public class WaterlilyNumbers {
public static void main(String[] args) {
int start = 100;
int end = 999;
for (int number = start; number <= end; number++) {
if (isWaterLilyNumber(number)) {
System.out.println(number);
}
}
}
// 检查一个数是否为水仙花数的方法
private static boolean isWaterLilyNumber(int num) {
String strNum = String.valueOf(num);
int[] digits = new int[strNum.length()];
for (int i = 0; i < strNum.length(); i++) {
digits[i] = Character.getNumericValue(strNum.charAt(i));
}
int sumOfCubes = digits[0] * digits[0] * digits[0] +
digits[1] * digits[1] * digits[1] +
digits[2] * digits[2] * digits[2];
return sumOfCubes == num;
}
}
```
在这个程序中,我们首先定义了开始和结束数值(100和999),然后用for循环逐个检查这些数。`isWaterLilyNumber` 方法用于计算并比较每位数字的立方之和。如果等于原数,就打印出来。
阅读全文