编写一个程序,输入一个正整数N(N大于等于100小于等于999),求出100~N之间的所有水仙花数。所谓 的水仙花数是:如果一个三位数的个位数、十位数、百位数的立方和等于该数自身,就称这个数为水仙花数。简单点
时间: 2025-03-08 20:02:54 浏览: 117
### 简单实现:寻找100到N之间的所有水仙花数
根据题目描述,我们要找的是三位数范围内满足条件的特殊数值——也就是所谓的“水仙花数”。这里提供一个非常简单的Python代码段来完成这项任务。我们将从用户那里获取一个介于100和999之间的整数作为上限,并打印出此范围内的每一个符合条件的水仙花数。
```python
# 获取用户输入
N = int(input("请输入一个正整数 N (100 <= N <= 999): "))
if not (100 <= N <= 999):
print("输入错误,请确保 N 在 [100, 999] 区间内")
else:
# 查找并显示结果
found_any = False
for num in range(100, N + 1):
sum_of_cubes = sum(int(digit) ** 3 for digit in str(num))
if sum_of_cubes == num:
print(f"{num} 是一个水仙花数.")
found_any = True
if not found_any:
print(f"在100到{N}之间没有找到水仙花数.")
```
这段程序首先会检查用户的输入是否有效(即确保存在一个合理的搜索边界)。然后它遍历了指定区间的每个数字,通过将数字拆分为单独的字符再转换成对应的整型值来进行处理。最后一步是对这三个分离出来的个位、十位以及百位上的数字分别求立方后再累加起来看其总和是不是刚好等于原数本身。如果是的话,则将其标记为“水仙花数”。
#### 关键步骤解析:
- 使用 `input()` 函数读取用户提供的最大界限。
- 利用列表生成式配合内置函数`sum()`, 将字符串形式的数字逐个取出做立方运算后求和。
- 如果找到了匹配项则直接输出相应的信息给用户;如果没有发现任何符合条件的数据,在循环结束后告知用户这一点。
希望这能帮助理解如何解决这个问题!
阅读全文
相关推荐
















