水仙花数定义:
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
这里提供两种解决方法。
方法一:将int类型的数字转变为string类型,然后通过下标获取对应的位数,再转换成int类型,进行计算。
for i in range(100,1000):
bai = int(str(i)[0])
shi = int(str(i)[1])
ge = int(str(i)[2])
if bai**3+shi**3+ge**3==i:
print(i)
运行结果如下。
153
370
371
407
方法二:通过数学运算,获得对应的位数,再进行计算。
for i in range(100,1000):
bai = i//100
shi = (i-bai*100)//10
ge = i-bai*100-shi*10
if bai**3+shi**3+ge**3 == i:
print(i)
运行结果如下。
153
370
371
407