python基础练习题(题目 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身)
2021-05-30 22:32 第二个卿老师 阅读(2521) 评论(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()多次尝试,发现两种方法运行时间差别不大,但第二种明显可读性更强一点。