#三位水仙花数
#清晰版
f = []
for i in range(100,1000):
gwei = i//100
swei = (i//10)%10
bwei = i%10
if i == gwei**3+swei**3+bwei**3:
f.append(str(i))
print(','.join(f))
#精简了一下
f = []
for i in range(100,1000):
if i ==pow(i//100,3) + pow(i//10%10,3) + pow(i%10,3):
f.append(str(i))
print(','.join(f))
思路:(最后的逗号输出,整了好久。刚开始这样写(end=',')但最后一个逗去不掉。)
那么这个题目的关键就是,给定一个三位数abc,如何获得它的个位数c,十位数b,百位数a?
我们先来看第一种解决方案,也是最主流的解决方法:数位分离。
以153为例,我们先看,如何获得它的个位数3?只要%10就可以了:
153%10=3
通过模10运算,我们将个位数3分离了出来。
那么如何分离十位数5?先将十位数挪到个位,再利用%10,不就可以分离出来了吗?
通过除以10向下取整,可以将十位数挪到个位上来:
153//10=15
再利用模运算分离个位上的10即可:
15%10=5
这样我们就获得了十位数5.
同理,如果想得到153的百位数,将153除以100向下取整即可:
153 // 100 = 1
这就是数位分离的思想,先得到要验证的总数,再将各个位数分离出来。
count = 0
while count < 3 :
user = input()
pwd = input()
if user=='Kate' and pwd=='666666':
print('登录成功!')
break
else:
count = count+1
if count == 3:
print("3次用户名或者密码均有误!退出程序。")