Python之打印出所有水仙花数(3位数,各位数字的立方和等于该数) | 您所在的位置:网站首页 › 1-x的立方等于 › Python之打印出所有水仙花数(3位数,各位数字的立方和等于该数) |
1.百度到的一位仁兄的代码,忘了贴原地址了,抱歉 for n in range(100,1000): s = str(n) sum_num = 0 for i in s: sum_num += int(i) ** 3 if sum_num == n: print(n,end=' ') 2.我首次粘贴跑行了,把if sum_num == n:这一行粘贴到for循环里,和sum_num += int(i) ** 3对齐了,造成运行结果是153 370 670 371 407,结果有重复: for n in range(100,1000): s = str(n) sum_num = 0 for i in s: sum_num += int(i) ** 3 if sum_num == n: print(n,end=' ') 3.将错就错的思路,针对结果去重,方法一 new_list = [] for n in range(100,1000): s = str(n) sum_num = 0 for i in s: sum_num += int(i) ** 3 if sum_num == n: if n not in new_list: #不在空列表里的值append到列表,起到去重作用 new_list.append(n) print(new_list,end=' ') 4.将错就错的思路,针对结果去重,方法二 new_list = [] for n in range(100,1000): s = str(n) sum_num = 0 for i in s: sum_num += int(i) ** 3 if sum_num == n: print(n,end=' ') new_list.append(n) print() #此时打印结果肯定有重复的 print(set(new_list)) #将列表new_list转换成集合后去重 |
CopyRight 2018-2019 实验室设备网 版权所有 |