描述
"水仙花数"是指一个三位整数,其各位数字的3次方和等于该数本身。
例如:ABC是一个"3位水仙花数",则:A的3次方+B的3次方+C的3次方 = ABC。
请按照从小到大的顺序输出所有的3位水仙花数,请用"逗号"分隔输出结果。
n = 100
t = ''
while n < 1000:
a = int(str(n)[0]) #先变成字符串提取百位,再变成整数用于计算
b = int(str(n)[1])
c = int(str(n)[2])
if a**3+b**3+c**3 ==n:
t +=(f'{n},') # t = t + n+',' 这里的,用于题目要求的逗号的分割
n +=1 #每次循环让数字进行+1,直到1000
print(t[:-1]) #不对最后有一位‘,’进行输出
输出结果是153,370,371,407
参考答案是 用for进行循环计算,
s = ""
for i in range(100, 1000):
t = str(i)
if pow(eval(t[0]),3) + pow(eval(t[1]),3) + pow(eval(t[2]),3) == i :
s += "{},".format(i)
print(s[:-1])
但是我觉得,ABC是未知数,用while循环会好点,