水仙花数 若该数等于各位数字的立方和,称该数为水仙花数。求100-999范围的所有的水仙花数。 水仙花.py
时间: 2023-10-19 12:05:20 浏览: 60
```python
for i in range(100, 1000):
a = i // 100 # 百位数
b = i // 10 % 10 # 十位数
c = i % 10 # 个位数
if i == a ** 3 + b ** 3 + c ** 3:
print(i)
```
输出结果:
153
370
371
407
相关问题
对于三位整数,如果各位数字的立方和等于其自身,称之为水仙花数,写循环程序求出 100---999 之间的所有水仙花数
为了找到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` 方法用于计算并比较每位数字的立方之和。如果等于原数,就打印出来。
求100-999的所有水仙花数。 水仙花数:其各位数字立方和等于该数字本身 如: 分析:从列表中取出一个数,分离出个位x,十位y,百位z,再求各位上的立方,看是否符合水仙花数;
水仙花数即为三位数中符合上述条件的数。
代码实现:
```python
for i in range(100, 1000):
x = i % 10
y = (i // 10) % 10
z = i // 100
if i == x ** 3 + y ** 3 + z ** 3:
print(i)
```
输出结果:
```
153
370
371
407
```
阅读全文