Python输出3位数的水仙花数。编写程序,输出100-1000之间的水仙花数。所谓水仙花数是指一个3位数,其各位数字的立方和等于该数本身。
时间: 2024-10-29 17:14:57 浏览: 26
在Python中,我们可以遍历100到999的每个三位数,计算它们各个位置数字的立方和,然后判断是否等于原数。以下是一个简单的程序实现:
```python
for num in range(100, 1000):
# 将数字转换为字符串以便分割出每一位
str_num = str(num)
# 检查数字长度是否为3,如果不是则跳过
if len(str_num) != 3:
continue
# 分割出每一位数字并计算立方和
first_digit = int(str_num[0])
second_digit = int(str_num[1])
third_digit = int(str_num[2])
sum_of_cubes = first_digit**3 + second_digit**3 + third_digit**3
# 判断立方和是否等于原数
if sum_of_cubes == num:
print(num, "是一个水仙花数.")
# 结果会输出所有满足条件的水仙花数
```
运行上述程序,你会看到153, 370, 371, 和 407 这些数字就是100到1000范围内的水仙花数。
相关问题
python输出3位数的水仙花数。编写程序,输出100-1000之间的水仙花数。所谓水仙花数是指一个3位数,其各位数字的立方和等于该数本身。 (格式提示:每行输出一个水仙花数)
好的,下面是Python程序的实现:
```python
for num in range(100, 1000):
# 计算各位数字的立方和
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** 3
temp //= 10
# 判断是否为水仙花数
if num == sum:
print(num)
```
程序解释:
1.使用`for`循环遍历100到1000之间的每一个数字。
2.使用`while`循环计算每个数字的各位数字的立方和。
3.判断是否为水仙花数,如果是,则输出该数字。
输出结果:
```
153
370
371
407
```
用python 写2.输出3位数的水仙花数。编写程序,输出100-1000之间的水仙花数。所谓水仙花数是指一个3位数,其各位数字的立方和等于该数本身。提示:运算符**表示幂运算
# 方法一:使用for循环和if语句判断
for i in range(100, 1000):
# 求出每个数字的百位、十位、个位
baiwei = i // 100
shiwei = (i % 100) // 10
gewei = i % 10
# 判断是否为水仙花数
if i == baiwei ** 3 + shiwei ** 3 + gewei ** 3:
print(i)
# 方法二:使用列表推导式和lambda表达式
result = filter(lambda x: x == (x // 100) ** 3 + ((x % 100) // 10) ** 3 + (x % 10) ** 3, range(100, 1000))
print(list(result))
阅读全文