输入一个三位数,判断这个数是否是水仙花数,并输出判断结果。 水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。 例如:
时间: 2024-09-30 12:03:21 浏览: 115
水仙花数是一个特殊类型的整数,其特征是每个位上的数字分别立方后再相加,结果恰好等于原数。判断一个三位数是否是水仙花数可以按照以下步骤操作:
1. 接收输入的三位数,假设为num。
2. 首先检查 num 是否真的是一位三位数,如果不是则返回不是水仙花数。
3. 分解 num 为百位(num // 100)、十位(num % 100 // 10)和个位(num % 10)。
4. 计算这三个位的立方和,即 (num // 100)^3 + (num % 100 // 10)^3 + (num % 10)^3。
5. 比较计算得到的立方和是否等于原始的 num。如果相等,则 num 是水仙花数;如果不等,则不是。
这里有一个简单的 Python 代码示例:
```python
def is_lychrel_number(num):
if not 100 <= num < 1000:
return False
digits = [int(d) for d in str(num)]
sum_of_cubes = sum(d**3 for d in digits)
# 判断过程不超过100次,避免无限循环
for _ in range(100):
digits.sort() # 将数字从小到大排列
num = sum_of_cubes - sum(int(d)**3 for d in str(sum_of_cubes))
if num == digits[0]*100 + digits[1]*10 + digits[2]: # 如果等于原来的三位数
return True
elif num < 100:
break
return False
# 测试
print(is_lychrel_number(153)) # 输出:True
```
阅读全文