鱼C论坛

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

[已解决]关于18讲的水仙花数

[复制链接]
发表于 2021-5-30 16:18:13 | 显示全部楼层 |阅读模式

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

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

x
自己写的代码,跑不出来,不知道哪里出了问题,和参考答案的思路看起来也差了很多。。
求大神解答
for i in range(100,1000):
    a = i//100
    b = (i//10)-a
    c = i-a-b
    if i == a**3 + b**3 + c**3:
        print(i)
最佳答案
2021-5-30 16:28:15
本帖最后由 柿子饼同学 于 2021-5-30 16:29 编辑
>>> i = 153
>>> a = i // 100
>>> a
1
>>> b = i // 10 - a
>>> b
14
>>> c = i - a - b
>>> c
138
>>> 
你看看,假设i = 153,那i // 10 是15,不是5
自己写了一个帖子,可以看看
浅谈水仙花数题目
https://fishc.com.cn/thread-192863-1-1.html
(出处: 鱼C论坛)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-30 16:27:55 | 显示全部楼层
c = i-a*100-b*10
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-5-30 16:28:15 | 显示全部楼层    本楼为最佳答案   
本帖最后由 柿子饼同学 于 2021-5-30 16:29 编辑
>>> i = 153
>>> a = i // 100
>>> a
1
>>> b = i // 10 - a
>>> b
14
>>> c = i - a - b
>>> c
138
>>> 
你看看,假设i = 153,那i // 10 是15,不是5
自己写了一个帖子,可以看看
浅谈水仙花数题目
https://fishc.com.cn/thread-192863-1-1.html
(出处: 鱼C论坛)

评分

参与人数 1鱼币 +3 收起 理由
wmy1212 + 3 感谢楼主无私奉献!

查看全部评分

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

使用道具 举报

发表于 2021-5-30 16:32:24 | 显示全部楼层
[b]

你的 a // 100 获得的是 百位数的值

而你 b、c 获取的值都是不正确的,我帮你改了下,看代码注释吧

参考代码:
for i in range(100,1000):
    a = i//100
    b = (i//10)%10   
    # 先 // 10 ,去掉个位数,再求余,即得到十位数
    c = i%10   
    # 对 i 直接 %10 求余 即得到个位数值
    if i == a**3 + b**3 + c**3:
        print(i)

还有个更简单的方法,如果你不想用数学计算出各个位置上的数,可以将 i 先转为 字符串,利用字符串切片来进行判断即可:

参考代码:
for i in range(100,1000):
    a,b,c = str(i)
    if i == int(a)**3 + int(b)**3 + int(c)**3:
        print(i)

[/b]

评分

参与人数 1鱼币 +3 收起 理由
wmy1212 + 3 感谢楼主无私奉献!

查看全部评分

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

使用道具 举报

发表于 2021-5-30 16:32:27 | 显示全部楼层
for i in range(100,1000):
    a = i//100
    b = (i//10)-a*10
    c = i-a*100-b*10
    if i == a**3 + b**3 + c**3:
        print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-5-30 16:32:42 | 显示全部楼层

啊啊啊,我傻了!蟹蟹!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-30 16:34:23 | 显示全部楼层
柿子饼同学 发表于 2021-5-30 16:28
你看看,假设i = 153,那i // 10 是15,不是5
自己写了一个帖子,可以看看
浅谈水仙 ...

恍然大悟知道自己的致命错误了。。蟹蟹,我看看文章~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-30 16:37:13 | 显示全部楼层
谢谢大家!我太蠢了!都让我get到自己的错了,可惜只能有一个最佳【就给了第一位同学啦】
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-30 16:39:01 | 显示全部楼层
wmy1212 发表于 2021-5-30 16:37
谢谢大家!我太蠢了!都让我get到自己的错了,可惜只能有一个最佳【就给了第一位同学啦】




第一位同学不是答案,最佳我改给二楼了

不能乱给哈,不然可能会误导别的鱼油

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

使用道具 举报

 楼主| 发表于 2021-5-30 16:43:59 | 显示全部楼层
Twilight6 发表于 2021-5-30 16:39
第一位同学不是答案,最佳我改给二楼了

不能乱给哈,不然可能会误导别的鱼油

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

使用道具 举报

 楼主| 发表于 2021-5-30 16:47:02 | 显示全部楼层
for i in range(100,1000):
    a = i//100
    b = (i-a*100)//10
    c = i-a*100-b*10
    if i == a**3 + b**3 + c**3:
        print(i)
最后修改之后是这样,结果是对的了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-30 17:38:09 | 显示全部楼层
wmy1212 发表于 2021-5-30 16:43
好的哇,知道了

给渔币,太客气了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-15 17:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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