自己写的程序,不知道哪错了
def coloful():for each in range(100,1000):
temp = each
sum = 0
while temp:
sum = int(temp/10%10)**3 + int(temp%10**3) + int(temp/10/10)**3
if sum == each:
print(each ,end = '\t')
print("所有的水仙花分别是:",end ='')
coloful()
这个程序怎么运行起来什么也没有啊?而且一直在运行,只打印出来‘所有的水仙花分别是’,哪位高手帮忙解答一下吧,谢谢 我感觉,你那个while temp 一直在循环,所以一直没有答案 改成这样:
def colorful():
for each in range(100,1000):
temp = each
sum = int(temp/10%10)**3 + int(temp%10)**3 + int(temp/10/10)**3
if sum == each:
print(each, end = '\t')
print("所有的水仙花分别是:")
colorful() temp首先被赋值为100,然后就没变过,一直等于100(非水仙花数),当然不会得到正确答案
(while 条件等于0或false时,才会跳出while循环 !!)
不过,兄弟,为啥要用 while ? 直接用 if 判断每个each不就行了吗?
for i in range(100, 1000):
g = i % 10
s = i // 10 % 10
b = i // 100
if i == g**3 + s**3 + b**3 :
print(i)
感觉你对循环结构的理解还不够透彻 一个死循环了,上面两位修改真好。 def isNarcissistic(num): # 水仙花數(Narcissistic number)
def func(num, res = 0):
if num < 10: return num**3
res += ((eval(str(num)[-1])**3) + func(eval(str(num)[:-1]), res))
return res
return func(num) == num
页:
[1]