给定一个整数 n ,判断 n 以内的正数是否含有水仙花数。水仙花数是指一个3位的整数,它的每个位上的数字的3次幂之和等于它本身。如果有,输出"有水仙花数",如果没有,则输出"没有水仙花数"。
时间: 2024-09-23 09:03:33 浏览: 48
26道基础算法题.pdf
这个问题需要编写一个算法来检查给定范围内是否存在水仙花数。首先,你需要遍历从1到n的所有3位数。对于每个三位数,分解其每一位,计算它们各自的立方和,然后比较这个和是否等于原始的三位数。
以下是一个Python示例,展示了如何实现这个功能:
```python
def is_narcissistic_number(n):
# 检查输入是否为3位数
if n < 100 or n > 999:
return False
digits = [int(digit) for digit in str(n)] # 获取百位、十位和个位
sum_of_cubes = sum([digit**3 for digit in digits]) # 计算每个位的三次方和
return sum_of_cubes == n # 返回三倍方和是否等于原数
# 测试范围
for i in range(1, 1000):
if is_narcissistic_number(i):
print("有水仙花数")
break
else:
print("没有水仙花数")
```
这个函数会逐个检查1到999之间的每一个数,如果找到一个水仙花数就会立即停止并返回结果。如果没有找到,最后会打印出“没有水仙花数”。
阅读全文