1、什么是水仙花数
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)
2、代码实现:
# 方法1:
num3 = [] # 定义一个空列表
for b in range(1,10): # 循环构建数位上的数,百位上1-9
for s in range(10): # 十位上0-9
for g in range(10): # 个位上0-9
num1 = b*100 + s*10 + g # 得出三位数
num2 = b**3 + s**3 + pow(g,3) # 用条件计算值
if num1 == num2: # 条件判断
num3.append(num1) # 符合条件的添加到空列表中
print('方法1——水仙花数有:',num3) # 打印输出
# 方法2:
num4 = []
for i in range(100,1000): # 循环构建3位,100-999
num = str(i)
if int(num[0])**3 + int(num[1])**3 + int(num[2])**3 == i: # 转换对象类型计算,并条件判断
num4.append(i)
print('方法2——水仙花数有:',num4)
# 方法3:
num5 = []
for num in range(100,1000):
g = num % 10 # 取余,得到个位数字
s = num // 10 % 10 # 整除取余,得到十位数字
b = num // 100 # 整除,得到百位数字
if num == g**3 + s**3 + b**3:
num5.append(num)
print('方法3——水仙花数有:',num5)
三、运行结果:
四、知识延伸
四位的四叶玫瑰数共有3个:1634,8208,9474;
五位的五角星数共有3个:54748,92727,93084;
六位的六合数只有1个:548834;
七位的北斗七星数共有4个:1741725,4210818,9800817,9926315;
八位的八仙数共有3个:24678050,24678051,88593477