"水仙花数"是指一个三位整数,其各位数字的3次方和等于该数本身。例如:ABC是一个"3位水仙花数",则:A的3次方+B的3次方+C的3次方 = ABC。 请按照从小到大的顺序输出所有的3位水仙花数,请用"逗号"分隔输出结果。
方法1:通过3个for循环分别定义三位数的百位、十位、个位,更直观的表示三位数ABC
s=[] #创建列表,主要解决“用逗号隔开”的问题
for a in range(1,10,1): #百位,三位数不能小于100或大于999,故百位的取值是1-9
for b in range(0,10,1): #十位,十位可取0
for c in range(0,10,1): #个位,个位可取0
x=a*100+b*10+c #三位数abc
if pow(a,3)+pow(b,3)+pow(c,3)==x: #满足“水仙花数”定义的三位数
s.append(x) #记录进列表s,以便用逗号隔开
print(",".join(str(x) for x in s)) #符合条件的x被记录在列表中,把x转成字符串形式,否则无法用join函数隔开,
# 依次遍历列表s中的x&