鱼C论坛

 找回密码
 立即注册
查看: 1137|回复: 11

[已解决]009课作业“水仙花数”的问题

[复制链接]
发表于 2018-5-19 18:08:36 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 myckjx 于 2018-5-19 18:53 编辑

我自己这样写的:
————————————
for i in range(100,1000):
        string = str(i)
        f = 0
        for s in string:        
                x = int(s)
                f += x**3
        if i == f:
        print(i)
————————————
运行时报错如图:
截图00.jpg

我也知道这样写没效率执行太多次str()函数,但是我看不出逻辑或语法上的问题,请老师指点。
最佳答案
2018-5-19 18:39:17
逻辑上没什么问题,检查一下你的标点、缩进这些
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-19 18:39:17 | 显示全部楼层    本楼为最佳答案   
逻辑上没什么问题,检查一下你的标点、缩进这些
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-19 18:49:17 | 显示全部楼层
已解决,可能是Tab的问题吧...
for i in range(100,1000):
    string = str(i)
    f = 0
    for s in string:
        x = int(s)
        f += x**3
    if i == f:
        print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-19 19:38:38 | 显示全部楼层
myckjx 发表于 2018-5-19 18:49
已解决,可能是Tab的问题吧...
for i in range(100,1000):
    string = str(i)

这个代码写的挺简洁的,厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-19 20:32:58 | 显示全部楼层
xue11 发表于 2018-5-19 19:38
这个代码写的挺简洁的,厉害

相比老师的,我这个多执行了999次str()+999*3次int(),效率完全不能比啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-19 20:58:10 | 显示全部楼层
请问f=0这个初始的设定 为什么不能放在for循环的外面呢?比如说可以把它放在第一行吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-19 21:11:00 | 显示全部楼层
for i in range(1,10):
    for j in range(10):
        for k in range(10):
            if i*100 + j*10 + k == i**3 + j**3 + k**3:
                print(i*100 + j*10 + k)
               
我是这样写的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-19 21:44:44 | 显示全部楼层
kathyww 发表于 2018-5-19 20:58
请问f=0这个初始的设定 为什么不能放在for循环的外面呢?比如说可以把它放在第一行吗?

只能放在这里,你看看:
——————————
for (外循环)
     f 清零
    for (内循环)
          f 累加
    判断输出
————————————
如果把(f 清零)放到外循环外面,f就会不断累加....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-5-19 21:48:53 | 显示全部楼层
zhdwinter 发表于 2018-5-19 21:11
for i in range(1,10):
    for j in range(10):
        for k in range(10):

哇,兄弟,感觉你这个才是最佳答案呢,比老师那个都强大!佩服!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-19 22:41:10 | 显示全部楼层
myckjx 发表于 2018-5-19 21:48
哇,兄弟,感觉你这个才是最佳答案呢,比老师那个都强大!佩服!

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

使用道具 举报

 楼主| 发表于 2018-5-19 22:46:46 | 显示全部楼层

你初学者还是前辈?帮忙看看这个问题http://bbs.fishc.com/thread-115738-1-1.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-19 22:49:01 | 显示全部楼层
myckjx 发表于 2018-5-19 21:44
只能放在这里,你看看:
——————————
for (外循环)

明白了 谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-23 17:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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