hiocnm 发表于 2020-8-1 16:18:00

求助第10讲第一题作业

编写一个程序,求 100~999 之间的所有水仙花数。
如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数
以下是我写的代码,用地板除从100到999分别把百、十、个位数求出来,求大神指点哪里错了{:10_282:}
numble = 100
while number <= 999:
    a = numble // 100
    b = (numble - a * 100) //10
    c = (numble - a * 100 - b * 10)
    if numble == (a ** 3) + (b ** 3) + (c ** 3):
      print(numble)

zltzlt 发表于 2020-8-1 16:20:08

本帖最后由 zltzlt 于 2020-8-1 16:22 编辑

1. 你的变量名拼错了,numble 和 number
2. 每次循环 number 都应该累加 1

代码帮你改好了:

numble = 100
while numble <= 999:
    a = numble // 100
    b = (numble - a * 100) //10
    c = (numble - a * 100 - b * 10)
    if numble == (a ** 3) + (b ** 3) + (c ** 3):
      print(numble)
    numble += 1

Twilight6 发表于 2020-8-1 16:21:21



你的number 写成了 numble 了,而且你 while 循环里 忘记将 number 增加,导致死循环

number = 100
while number <= 999:
    a = number // 100
    b = (number - a * 100) // 10
    c = (number - a * 100 - b * 10)
    if number == (a ** 3) + (b ** 3) + (c ** 3):
      print(number)
    number += 1

baige 发表于 2020-8-1 16:22:44

numble = 100
while numble <= 999:
   a = numble // 100
   b = (numble - a * 100) // 10
   c = (numble - a * 100 - b * 10)
   if numble == (a ** 3) + (b ** 3) + (c ** 3):
         print(numble)
   numble+=1

hiocnm 发表于 2020-8-1 16:24:06

zltzlt 发表于 2020-8-1 16:20
1. 你的变量名拼错了,numble 和 number
2. 每次循环 number 都应该累加 1



感谢感谢{:10_254:}
页: [1]
查看完整版本: 求助第10讲第一题作业