ntgjj 发表于 2018-6-6 21:31:22

菜鸡摸索水仙花

i=100
a=i%10
b=i%10%10
c=i%100%10
while i:
   if i==a*3+b*3+c*3:
      print(i)
      i+=1
      continue
    if i!=a*3+b*3+c*3:
      i+=1
      continue
为什么报错我把esle改成if一样报错

ntgjj 发表于 2018-6-6 21:32:50

我学的python

BngThea 发表于 2018-6-6 21:38:33

逻辑不对,abc都是0

凌九霄 发表于 2018-6-7 00:44:33

本帖最后由 凌九霄 于 2018-6-7 01:33 编辑

先说说你程序的问题:
1、报错的原因是第二个IF缩进错误
2、continue是没有必要的
3、**写成了*,大概是手误吧
4、这个程序会死循环,因为你没有设置退出循环的条件
5、程序不会得到正确的结果,因为你解题的逻辑错误

照着你的思路稍微改正了下,程序会返回100 - 1000内的水仙花数:

i = 100

while i < 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)
      
    i += 1


ntgjj 发表于 2018-6-7 10:42:32

凌九霄 发表于 2018-6-7 00:44
先说说你程序的问题:
1、报错的原因是第二个IF缩进错误
2、continue是没有必要的


要把abc写到循环里面么赋值么
页: [1]
查看完整版本: 菜鸡摸索水仙花