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()多次尝试,发现两种方法运行时间差别不大,但第二种明显可读性更强一点。