咸鱼仔001 发表于 2020-2-14 13:40:14

有没有大佬帮我看一下我写的哪里错了?

编写一个程序,求 100~999 之间的所有水仙花数。
如果一个 3 位数等于其各位数字的立方和, 则称这个数为水仙花数。 例如: 153
= 1^3 + 5^3 + 3^3 ,因此 153 就是一个水仙花数
for i in range(100,1000):
    x = i \\ 100
    y = i \\ 10
    z = i % 10
    if i == x ** 3 + y ** 3 + z ** 3:
      print(i)

最后的魁拔 发表于 2020-2-14 13:43:15

153//10 = 15

zltzlt 发表于 2020-2-14 14:10:12

是 \\ 吗?

endifz 发表于 2020-2-14 15:25:02

for x in range(1, 10):
    for y in range(0, 10):
      for z in range(0,10):
            if x ** 3 + y ** 3 + z **3 == 100 * x + 10 * y + z:
                print(100 * x + 10 * y + z)

邹海霞 发表于 2020-2-14 15:46:06

你y那里搞错了
for i in range(100,1000):
    x = i//100
    y = i//10%10
    z = i % 10
    if x ** 3 + y ** 3 + z ** 3==i:
      print(i)

邹海霞 发表于 2020-2-14 15:49:51

邹海霞 发表于 2020-2-14 15:46
你y那里搞错了
for i in range(100,1000):
    x = i//100


然后整除符号是//不是\\

咸鱼仔001 发表于 2020-2-14 16:02:06

最后的魁拔 发表于 2020-2-14 13:43
153//10 = 15

第二行就错了 你能帮我看看什么错误吗

Sungne_jer 发表于 2020-2-14 16:16:03

你的问题:
1、第二行:整除是//,不是\\
2、第三行:十位的算法是这样的:y = i % 100 // 10
这里有一篇计算水仙花数方法的博客,可以看看:https://blog.csdn.net/qq_41096460/article/details/80399934

dudaguo 发表于 2020-2-14 16:31:03

y求错了,按照你的思路的话,y = i // 10 % 10。

咸鱼仔001 发表于 2020-2-18 10:10:57

zltzlt 发表于 2020-2-14 14:10
是 \\ 吗?

感谢!

咸鱼仔001 发表于 2020-2-18 10:11:38

Sungne_jer 发表于 2020-2-14 16:16
你的问题:
1、第二行:整除是//,不是\\
2、第三行:十位的算法是这样的:y = i % 100 // 10


感谢!

咸鱼仔001 发表于 2020-2-18 10:12:15

endifz 发表于 2020-2-14 15:25
for x in range(1, 10):
    for y in range(0, 10):
      for z in range(0,10):


感谢

咸鱼仔001 发表于 2020-2-18 10:12:58

邹海霞 发表于 2020-2-14 15:46
你y那里搞错了
for i in range(100,1000):
    x = i//100


感谢!

咸鱼仔001 发表于 2020-2-18 10:13:36

邹海霞 发表于 2020-2-14 15:49
然后整除符号是//不是\\

感谢!
页: [1]
查看完整版本: 有没有大佬帮我看一下我写的哪里错了?