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转换成集合后去重