编写一个程序,判定输入三位数是否是水仙花数。
说明: “个位的立方+十位的立方+百位的立方 等于这个数本身”,则这个数就是水仙花数;
例如:153=1的立方+5的立方+3的立方
需要先求出 个位、十位、百位的数字各是几,然后才能进行计算。
比如这个数字为153
个位:对153进行余10,结果为个位数3
十位:先将153除以10得到十位和百位(15),再余10得到十位数5
百位:153除以100 得出百位数1
1. 判断一个三位数是否为水仙花数
a = eval(input("请输入一个数字"))
bw = a // 100 # 整除获得百位数("//" 表示整除,比如 3//2=1; "/" 表示浮点运算,比如3/2=1.5)
sw = a // 10 % 10 # 或者b = (i % 100) // 10
gw = a % 10
s = pow(gw, 3) + pow(sw, 3) + pow(bw, 3)
if (s == a):
print(a, end="")
print("是水仙花数!")
else:
print(a, end="")
print("不是水仙花数")
2. 求1-1000之间的水仙花数
for a in range(100,1000):
bw = a // 100
sw = a // 10 % 10
gw = a % 10
s = pow(gw, 3) + pow(sw, 3) + pow(bw, 3)
if (s == a):
print(a)
3. 求1-1000之间的水仙花数方式2
for a in range(100,1000):
s=str(a)
gw=int(s[-1])
sw=int(s[-2])
bw=int(s[-3])
if a == gw**3+sw**3+bw**3:
print(a)