JAVA
·
发表于 5年以前
·
阅读量:975
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
问题1:
判读一个数是否为水仙花数:
def printNarcissisticNumber(self, num):
'判断一个数是否是水仙花数'
num = int(num)
if num < 100 or num > +1000:
print("不是水仙花数")
else:
geWei = num % 10
baiWei = int(num / 100)
shiWei = int((num - baiWei * 100) / 10)
# print(geWei)
# print(shiWei)
# print(baiWei)
sum = geWei * geWei * geWei + shiWei * shiWei * shiWei + baiWei * baiWei * baiWei
if sum == num:
print("%d是水仙花数" % num)
else:
print("不是水仙花数")
问题2:
输出所有的水仙花数。
def printNarcissisticNumber(self):
'判断一个数是否是水仙花数'
for num in range(100, 1000):
geWei = num % 10
baiWei = int(num / 100)
shiWei = int((num - baiWei * 100) / 10)
# print(geWei)
# print(shiWei)
# print(baiWei)
sum = geWei * geWei * geWei + shiWei * shiWei * shiWei + baiWei * baiWei * baiWei
if sum == num:
print("%d是水仙花数" % num)