代码改变世界

python基础练习题(题目 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身)

2021-05-30 22:32  第二个卿老师  阅读(2570)  评论(0编辑  收藏  举报

day8

---------------------------------------------------------------

实例013:所有水仙花数

题目 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

分析了下,问题不大,偷个懒导入math包:

 1 import math
 2 
 3 floor = []
 4 for i in range(100,1000):
 5     list = str(i)
 6     sum = 0
 7     for j in list:
 8         sum += math.pow(int(j),3)
 9     if sum == i:
10         floor.append(i)
11 print(floor)

来看下标准答案:

1 for i in range(100,1000):
2     s=str(i)
3     one=int(s[-1])
4     ten=int(s[-2])
5     hun=int(s[-3])
6     if i == one**3+ten**3+hun**3:
7         print(i)

用时间time.perf_countter()多次尝试,发现两种方法运行时间差别不大,但第二种明显可读性更强一点。