今天来的“潜一下水”咯,如何要用python函数写一个判断水仙花数的程序应该怎么做?
常规的编程题:编写一个判断一个数是否是水仙花数的函数,然后利用该函数求所有水仙花数。
然后思考?什么是水仙花数?(水仙花数是一个三位数,其每个位上的数的立方和等于这个数,如153=1*1*1+5*5*5+3*3*3,153是水仙花数)
One programming problem a day, first tested for a week.
# 判断一个数是否是水仙花数的函数
def JudgmentDaffodil2(num1):
if num1 >= 100 and num1 < 1000: # 判断是否为三位数
a = num1 // 100 # //用于取整,a得到的值是百位的
b = (num1 // 10) % 10 # % 用于取余,b得到的值是十位的
c = num1 % 10 # c得到的值是个位的
# if num2 == a ** 3 + b ** 3 + c ** 3:
return num1 == a ** 3 + b ** 3 + c ** 3 # 是水仙花数的条件
print(JudgmentDaffodil2(152)) # 返回False
def JudgmentDaffodil_Digit(Digit):
list = [] # 储存水仙花数的列表
for j in range(100, Digit): # 遍历在100到Digit
t = JudgmentDaffodil2(j)
if t: # 如果符合条件则添加到列表
list.append(j)
print(list)
JudgmentDaffodil_Digit(1000)