鱼C论坛

 找回密码
 立即注册
查看: 2339|回复: 9

[已解决]求水仙花数

[复制链接]
发表于 2018-3-3 22:52:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
for a in range(100,1000):
    b=a//100
    c=a%10
    d=(a-b*100-c)/10
if a==b**3+c**3+d**3:
    print('三位数的水仙花数有%d'%a)
else:
    print('三位数的水仙花数不存在')
为什么这个显示水仙花数不存在呢?
最佳答案
2018-3-4 00:04:39
  1. for a in range(100,1000):
  2.     b=a//100
  3.     c=a%10
  4.     d=(a-b*100-c)/10
  5.     #print(b,c,d)
  6.     if a==(b**3)+(c**3)+(d**3):
  7.         print('三位数的水仙花数有%d'%a)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-4 00:01:39 | 显示全部楼层
看不出来if跟else有没有在while回圈内,假如是有的话,在一开始,a = 100 一路run到if回圈中,会重制为 a =1 所以水仙花数不存在
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-4 00:04:39 | 显示全部楼层    本楼为最佳答案   
  1. for a in range(100,1000):
  2.     b=a//100
  3.     c=a%10
  4.     d=(a-b*100-c)/10
  5.     #print(b,c,d)
  6.     if a==(b**3)+(c**3)+(d**3):
  7.         print('三位数的水仙花数有%d'%a)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-4 00:07:48 | 显示全部楼层
soonna 发表于 2018-3-4 00:01
看不出来if跟else有没有在while回圈内,假如是有的话,在一开始,a = 100 一路run到if回圈中,会重制为 a = ...

我没有用while
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-4 00:11:38 | 显示全部楼层

哎,疏忽了,缩进问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-4 00:21:34 | 显示全部楼层

def f(n):
    if n==1:
        return 1
    else:
        return n*f(n-1)
    for a in range(100,1000):
        b=a//100
        c=a%10
        d=(a-b*100-c)/10
        if a==f(b)+f(c)+f(d):
            print('%d等于其各位数字的阶乘是'%a)
这个又是什么问题?
   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-4 10:42:55 | 显示全部楼层
本帖最后由 纳兰小寒 于 2018-3-4 10:44 编辑

  1. 两个问题:
  2. 1、for 起头的缩进不合理
  3. 2、b,c,d存在0的情况未处理

  4. def f(n):
  5.     if n == 0:
  6.         return 0
  7.     elif n == 1:
  8.         return 1
  9.     else:
  10.         return n *f(n-1)
  11. for a in range(100,1000):
  12.     b=a//100
  13.     c=a%10
  14.     d=(a-b*100-c)/10
  15.     if a== f(b) + f(c) + f(d):
  16.         print('%d等于其各位数字的阶乘是'%a)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-4 23:36:36 | 显示全部楼层

谢谢,我对什么时候缩进什么时候不缩进用的时候还是很迷茫,你能讲讲该以什么思路确定该不该缩进了,就被比如这个为什么def和for是同一关系了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-5 12:47:56 | 显示全部楼层
fan1993423 发表于 2018-3-4 23:36
谢谢,我对什么时候缩进什么时候不缩进用的时候还是很迷茫,你能讲讲该以什么思路确定该不该缩进了,就被 ...

我个人的理解好
缩进呢,属于上一行代码的下级执行命令
如:
  1. 1、
  2. def():
  3.     for x in a:
  4.         、、、
  5. 2、
  6. def():
  7.     、、、
  8. for x in a:
  9.     、、、
复制代码

def 是方法体,有缩进的都是在方法里面执行,如果没有缩进,就是平级关系。
上面1的话就是只有执行了def方法后才能执行里面的for循环,2的是默认是先执行for循环,def方法体被调用的时候,才执行里面的代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-5 17:11:13 | 显示全部楼层
纳兰小寒 发表于 2018-3-5 12:47
我个人的理解好
缩进呢,属于上一行代码的下级执行命令
如:

似乎理解了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 00:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表