曾哥870 发表于 2021-3-28 19:54:33

大佬救我,到底是哪里有毛病,输出没有值,挑了好久没找出来,奔溃了!

def Narcissus():
    for each in range(100,1000):
      i=each
      sum=0
      while i:
            sum=sum+(i%10)**3
            i//=10
      if sum==i:
            print(i,end='\t')
         
Narcissus()

atai0622 发表于 2021-3-28 19:54:34

这是求水仙花数的题目吧
def Narcissus():
    for each in range(100,1000):
      i=each
      sum=0
      while i:
            sum=sum+(i%10)**3
            i//=10
      if sum==each:   #这里i已经被上面的while语句改为0了,必然不可能相等,改成和each比较就行了
            print(each,end='\t')
         
Narcissus()

zzxzrm 发表于 2021-3-28 20:11:59

条件没满足 没执行print语句 还有你想干嘛

柿子饼同学 发表于 2021-3-28 20:21:17

本帖最后由 柿子饼同学 于 2021-3-28 20:32 编辑

{:10_266:} 我就找到i改成each的错误,结果输出4个0,我也不知怎么办了

zzxzrm 发表于 2021-3-28 20:24:44

def Narcissus():
    for each in range(100,1000):
      sum=0
      i=each
      while i:
            sum=sum+(i%10)**3
            i //=10
      if sum==each:   
            print(each)
Narcissus()

这样就行了 i改成each

zzxzrm 发表于 2021-3-28 20:27:47

zzxzrm 发表于 2021-3-28 20:24
这样就行了 i改成each

原因是你i整除10了

曾哥870 发表于 2021-3-28 21:29:38

zzxzrm 发表于 2021-3-28 20:24
这样就行了 i改成each

谢谢大佬,这里的each为啥非要用另个参数来代替呢?while 如果后面是each就直接木有结果

曾哥870 发表于 2021-3-28 21:30:28

柿子饼同学 发表于 2021-3-28 20:21
我就找到i改成each的错误,结果输出4个0,我也不知怎么办了

哈哈哈,太好玩了,第一遍还没找出这么多错误,第二遍逆天了

曾哥870 发表于 2021-3-28 21:31:09

zzxzrm 发表于 2021-3-28 20:27
原因是你i整除10了

地板除吧

柿子饼同学 发表于 2021-3-28 21:36:38

曾哥870 发表于 2021-3-28 21:30
哈哈哈,太好玩了,第一遍还没找出这么多错误,第二遍逆天了

浅谈水仙花数题目
https://fishc.com.cn/thread-192863-1-1.html
(出处: 鱼C论坛)
试试看吧,把最后的代码抄下来
页: [1]
查看完整版本: 大佬救我,到底是哪里有毛病,输出没有值,挑了好久没找出来,奔溃了!