鱼C论坛

 找回密码
 立即注册
查看: 752|回复: 4

[已解决]水仙花数代码求教

[复制链接]
发表于 2018-12-5 11:58:14 | 显示全部楼层 |阅读模式

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

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

x
如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数。

求100~999之间的水仙花数。

代码如下:

#!/usr/bin/python3

count = []
for num in range(100, 1000):
    num_str = str(num)
    for i in num_str:
        count.append(i)
    a = int(count[0])
    b = int(count[1])
    c = int(count[2])
    if num == (a**3 + b**3 + c**3):
        print(num)

为什么跑不出结果啊!!!
最佳答案
2018-12-5 12:03:14
你的count一直在增加,你不信最后打印下count
应该把count放在for内部
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-12-5 12:03:14 | 显示全部楼层    本楼为最佳答案   
你的count一直在增加,你不信最后打印下count
应该把count放在for内部
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-5 12:17:18 | 显示全部楼层
你这个……,不知道怎么说了,先告诉你为什么不行:

1、第一行for num in range(100,1000)没毛病。

2、第三行for i in num_str和第四行count.append(i),差就差在这了。

     你要知道现在你append的是num_str的字符串,并且这个字符串一append就是三个(三位数)。
     
     再加上第一行的那个,你append的结果就是 3个字符串 x 999次 = 2997 个元素进count列表里。

     所以你append里有2997个元素,头三个元素是 1,0,0(100!=1),显然不满足你的条件,所以没结果。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-12-5 12:38:44 | 显示全部楼层
你没想好,count里面放的是啥
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-5 13:45:44 | 显示全部楼层
你这个应该是count里的第零个数,第一个数,第二个数这三个数的三次方的和去和100到999里的数比较,当然没有结果了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-19 03:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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