1543227180 发表于 2020-1-29 14:51:18

询问一下python第九讲水仙花数的课后题

for i in range(100,1000):
    i=(i//100)**3 + ((i-i//100*100)//10)**3 + (i%10)**3
    print(i,end=" ")
代码如上能看看哪里有问题吗
还有原答案我看着有点懵逼

zltzlt 发表于 2020-1-29 14:53:39

1. 代码帮楼主改好了:

for i in range(100, 1000):
    n = (i // 100) ** 3 + ((i - i // 100 * 100) // 10) ** 3 + (i % 10) ** 3
    if n == i:
      print(i, end=" ")

2. https://fishc.com.cn/forum.php?mod=viewthread&tid=126088

1543227180 发表于 2020-1-29 14:57:41

zltzlt 发表于 2020-1-29 14:53
1. 代码帮楼主改好了:




感谢感谢,头一次发帖,没想到这么快就有人答了,鱼c真是个好地方

1543227180 发表于 2020-1-29 15:01:02

zltzlt 发表于 2020-1-29 14:53
1. 代码帮楼主改好了:




还就是想问下引入n的作用

zltzlt 发表于 2020-1-29 15:05:19

1543227180 发表于 2020-1-29 15:01
还就是想问下引入n的作用

题目要求打印 100 ~ 999 的水仙花数,而你却将 i 各位的 3 次幂之和都打印了。

应该先将 i 各位数字的 3 次幂之和赋值给 n,之后判断 n 是否与 i 相等。如果相等则证明 i 是水仙花数,打印 i。

1543227180 发表于 2020-1-29 16:13:08

zltzlt 发表于 2020-1-29 15:05
题目要求打印 100 ~ 999 的水仙花数,而你却将 i 各位的 3 次幂之和都打印了。

应该先将 i 各位数字的 ...

哦哦,刚开始学,总是忘=是赋值,还以为做方程呢
页: [1]
查看完整版本: 询问一下python第九讲水仙花数的课后题