DAY 010--水仙花数for循环应用
010问题:
什么是水仙花数?水仙花数是指一个 n 位正整数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)。
要求:打印输出所有的三位数"水仙花数"。
流程分析:
思路1:
1、设置范围:三位数的水仙花i,将i从100到999之间循环找书
2、由于i是整数,将i转为字符串,然后将i的百位数、十位数、个位数(x,y,z)分别取出并再次转换为整数
3、设定条件:
if pow(x,3)+pow(y,3)+pow(z,3)==i
4、如果条件满足就打印i
思路2:
1、现将这三位数的百位i、十位j、个位k分别从(1,9)、(0,9)、(0,9)这三个范围中枚举
2、判定条件:
if pow(i,3)+pow(j,3)+pow(k,3)==i*100+j*10+k
3、如果条件满足就打印ijk
代码分析:
代码1
for i in range(100,1000): x,y,z=map(int,str(i)) if pow(x,3)+pow(y,3)+pow(z,3)==i: print(i) #输出结果 153 370 371 407
代码2
for i in range(1,10): for j in range(10): for k in range(10): if i**3+j**3+k**3==i*100+j*10+k: print(i,j,k) #输出结果 1 5 3 3 7 0 3 7 1 4 0 7