作者:Amandadahl | 来源:互联网 | 2024-12-17 16:06
水仙花数是指一个三位数,如果它恰好等于其各个位数的立方之和,那么这个数就被称作水仙花数。例如,153就是一个典型的水仙花数,因为153 = 1³ + 5³ + 3³。下面将通过一段Python代码来实现100到1000范围内所有水仙花数的查找。
以下是具体的实现代码及其解析:
def find_narcissistic_numbers(start, end):
results = [] # 存储找到的所有水仙花数
for num in range(start, end + 1):
# 将当前数字转换为字符串,方便获取每个位上的数字
str_num = str(num)
# 计算每个位数的立方和
sum_of_cubes = sum([int(digit) ** 3 for digit in str_num])
# 如果计算结果与原始数字相等,则该数字为水仙花数
if sum_of_cubes == num:
results.append(num)
return results
# 调用函数,查找100到1000之间的所有水仙花数
narcissistic_numbers = find_narcissistic_numbers(100, 1000)
print(f"在100到1000之间共有{len(narcissistic_numbers)}个水仙花数,它们分别是:")
print(narcissistic_numbers)
上述代码首先定义了一个函数find_narcissistic_numbers
,该函数接收两个参数作为搜索水仙花数的起始和结束范围。通过将每个数字转换为字符串,我们可以轻松地访问每个位上的数字,并计算这些数字的立方和。如果某个数字的立方和与其本身相等,那么该数字就是水仙花数。最后,我们调用此函数并打印出100到1000之间的所有水仙花数。
通过这段代码,不仅能够帮助初学者理解水仙花数的概念,还能加深对Python编程中字符串操作和列表推导式的应用理解。
如果您有任何疑问或建议,欢迎留言交流!