1 #题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。


代码:


  2 print('水仙花数为:')
  3 for i in range(1,10):
  4     for j in range(0,10):
  5         for p in range(0,10): 
  6             if (i**3 + j**3 + p**3) == (i*100 + j*10 +p):
  7                 print('%d'%(i*100 + j*10 + p))


运行结果:


[root@HK code_100]# python code_13.py 
水仙花数为:
153
370
371
407
[root@HK code_100]#


代码解释:


  2 print('水仙花数为:')            
  3 for i in range(1,10):                #因为是求三位数的水仙花数,所以这个三位数的第一位不能为0,所以从1开始,遍历第一位数
  4     for j in range(0,10):            #遍历第二位数
  5         for p in range(0,10):        #遍历第三位数
  6             if (i**3 + j**3 + p**3) == (i*100 + j*10 +p):  #根据题目要求,选取符合要求的数字
  7                 print('%d'%(i*100 + j*10 + p))            #格式化输出水仙花数