水仙花数,又称自恋数、自幂数,是指一个三位数,其各位数字的立方和等于该数本身,153是一个水仙花数,因为153=1^3+5^3+3^3,我们就用Python来编写一个程序,找出所有的水仙花数。
我们要明确一下思路,对于每一个三位数,我们需要做以下几步操作:
- 获取该数的个位、十位和百位数字。
- 计算这三个数字的立方和。
- 判断这个立方和是否等于原数。
让我们一步步来实现这个程序吧!
打开你的Python编辑器,首先我们需要定义一个函数,用来判断一个数是否为水仙花数,代码如下:
def is_narcissistic_number(num):
# 获取个位数字
units = num % 10
# 获取十位数字
tens = (num // 10) % 10
# 获取百位数字
hundreds = num // 100
# 计算立方和
sum_of_cubes = units**3 + tens**3 + hundreds**3
# 判断是否为水仙花数
if sum_of_cubes == num:
return True
else:
return False
我们需要遍历所有的三位数,找出所有的水仙花数。
# 遍历所有三位数
for num in range(100, 1000):
if is_narcissistic_number(num):
print(f"{num} 是一个水仙花数")
将以上两段代码合并,我们就得到了一个完整的水仙花数查找程序:
def is_narcissistic_number(num):
units = num % 10
tens = (num // 10) % 10
hundreds = num // 100
sum_of_cubes = units**3 + tens**3 + hundreds**3
if sum_of_cubes == num:
return True
else:
return False
# 遍历所有三位数
for num in range(100, 1000):
if is_narcissistic_number(num):
print(f"{num} 是一个水仙花数")
运行这个程序,你会看到以下输出:
153 是一个水仙花数
370 是一个水仙花数
371 是一个水仙花数
407 是一个水仙花数
是不是很有趣呢?通过这个程序,我们不仅学会了如何用Python找出水仙花数,还巩固了函数定义、循环语句和条件判断等基础知识。
这个程序还可以进行一些优化,我们可以把判断水仙花数的函数改写为生成器,这样代码会更加简洁,感兴趣的小伙伴可以尝试一下哦!
希望大家通过这篇文章,能够对Python编程有更深入的了解,编程不仅能帮助我们解决实际问题,还能让我们在解决问题的过程中体会到乐趣,让我们一起加油,成为更好的自己吧!

