“水仙花数”是指一个三位数,其各位数字的立方之和的结果等于该数本身。例如:153 是一个“水仙花数”,因为153 = 1! + 5! + 3!。 问题:编写一个函数,要求输出所有的“水仙花数”。 输入格式示例:无 输出格式示例:水仙花数有: 153, 370, 371, 407
时间: 2023-08-31 11:31:17 浏览: 67
“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身
5星 · 资源好评率100%
### 回答1:
def narcissistic_number():
res = []
for i in range(100, 1000): # 遍历三位数
num = str(i)
sum_num = 0
for j in num:
sum_num += int(j) ** 3 # 求各位数字的立方和
if sum_num == i:
res.append(str(i))
print("水仙花数有:", ", ".join(res))
narcissistic_number()
### 回答2:
要编写一个函数来输出所有的“水仙花数”,可以按照以下步骤进行:
1. 定义一个空列表,用于存储所有的“水仙花数”。
2. 使用一个循环从100到999遍历所有的三位数。
3. 在循环中,将当前数分解为个位、十位和百位上的数字。
4. 计算当前数的每个位上的数字的立方和,判断是否等于当前数本身。
5. 如果满足条件,将当前数添加到列表中。
6. 循环结束后,输出列表中的所有“水仙花数”。
以下是用Python编写的函数:
def narcissistic_number():
answer = []
for num in range(100, 1000):
digit1 = num // 100
digit2 = (num % 100) // 10
digit3 = num % 10
if num == digit1 ** 3 + digit2 ** 3 + digit3 ** 3:
answer.append(num)
print("水仙花数有: " + ", ".join(str(num) for num in answer))
使用函数调用narcissistic_number(),就可以输出所有的“水仙花数”。
请注意,这里假设输入的数字范围是100到999,因为“水仙花数”是指一个三位数。
阅读全文