本题要求实现一个函数,可判断一个三位数是否是水仙花数。是则返回1,否则返回0。并调用它输出所有指定范围内的水仙花数。
时间: 2025-07-06 09:54:52 浏览: 6
### 编写判断三位数是否为水仙花数的函数
为了实现这一功能,可以创建一个名为 `is_narcissistic` 的函数来检查给定的三位数是否满足水仙花数条件。此函数接收一个整型参数并返回布尔值表示该数字是否为水仙花数。
对于任意三位数 \( n \),可以通过分离每一位上的数值,并计算这些位上数值各自立方后的总和来进行验证。当这个求得的结果正好等于原始输入\( n \)时,则说明这是一个有效的水仙花数[^1]。
下面是一个Python版本的例子:
```python
def is_narcissistic(num):
# 确认num是三位数
if num < 100 or num > 999:
return False
hundreds = num // 100 # 取出百位上的数
tens = (num // 10) % 10 # 取出十位上的数
ones = num % 10 # 取出个位上的数
# 判断是否满足水仙花数定义
if num == hundreds ** 3 + tens ** 3 + ones ** 3:
return True
else:
return False
```
接着,在主程序部分,可以根据用户提供的范围查找并打印所有符合条件的水仙花数。这里提供了一个简单的循环结构用于遍历指定区间的每一个可能的候选者,并调用上述定义好的辅助函数完成最终筛选工作[^4]。
```python
def find_all_in_range(start, end):
results = []
for number in range(max(100, start), min(end, 999)+1):
if is_narcissistic(number):
results.append(number)
return results
if __name__ == "__main__":
m = int(input("请输入起始位置: "))
n = int(input("请输入结束位置: "))
narcissistic_numbers = find_all_in_range(m, n)
print(f"{m}到{n}之间的水仙花数有:")
print(*narcissistic_numbers, sep=", ")
```
这段代码实现了从命令行读取两个边界值作为搜索区间端点的功能,之后通过调用之前编写的工具方法获取结果列表最后将其输出显示出来[^5]。
阅读全文
相关推荐















