输出三位数的水仙花数

 

for i in range(100, 1000):
    a = i // 100
    b = (i - a * 100) // 10
    c = (i - a * 100 - b * 10)
    if i == pow(a, 3) + pow(b, 3) + pow(c, 3):
        print(i)

 

参考代码如下 

shuixianhua=[]
for i in range(1,10):
  for j in range(10):
    for k in range(10):
      if i*i*i + j*j*j + k*k*k == 100*i + 10*j + k:
        shuixianhua.append(100*i + 10*j + k)
for i in shuixianhua:
  if i == shuixianhua[-1]:
    print(i)
  else:
    print(i, end = ',')

如果对你有帮助,记得采纳一下哦,谢谢 

for i in range(100,1000):
    if eval('+'.join([n+'**3' for n in str(i)]))==i:
        print(i)

使用切片,将数字切分并拼接立方的算数表达式,然后用+号拼接成完整算数表达式,运算结果如果等于数字本身,就输出。

上边这个完全等效于这个,输出的时候,我多输出了两个变量,可以方便的观察结果是否是预期的内容

for i in range(100,1000):
    a = [n+'**3' for n in str(i)]
    b = '+'.join(a)
    if eval(b)==i:
        print(a,b,i)

如果还不明白,可以看下边这个

for i in range(100,1000):
    a = []
    for n in str(i):
        a.append(n+'**3')
    b = '+'.join(a)
    if eval(b)==i:
        print(a,b,i)

几个遍历的方法,可以使用不同的语法进行缩减语句的

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632