马露茜 发表于 2020-9-8 16:38:49

运行不出结果

i=100
sum=0
while(i<1000):
    b=i//100
    s=(i-b)//10
    g=i%10
    sum=b**3+s**3+g**3
    if (i==sum):
      print(i,'是水仙花数')
    i+=1
print('游戏结束')


请各位大佬帮我看看这个水仙花的代码哪里不对,我运行出来直接结束了。题目:编写一个程序,求100~999 之间的所有水仙花数。如果一个3 位数等于其各位数字的立方和, 则称这个数为水仙花数。例如:153= 1^3 + 5^3 + 3^3 ,因此153 就是一个水仙花数
谢谢大家

zhongguozkh 发表于 2020-9-8 17:00:16

本帖最后由 zhongguozkh 于 2020-9-8 17:04 编辑

——i = 100
——sum = 0
——while i < 1000:
        b = i // 100
        s = (i-b*100)//10
        g = i % 10
        sum = b**3+s**3+g**3
        if i == sum:
                print()
        i += 1

疾风怪盗 发表于 2020-9-8 17:01:08


i=100
sum=0
while(i<1000):
    b=i//100
    s=(i//10)%10
    g=i%10
    sum=b**3+s**3+g**3
    if (i==sum):
      print(i,'是水仙花数')
    i+=1
print('游戏结束')
这句话写错了,改成这样试试看:
s=(i//10)%10

zhongguozkh 发表于 2020-9-8 17:14:38

也可以Ctrl+N,再输入。

sunrise085 发表于 2020-9-8 17:23:55

写到注释里了
i=100
sum=0
while(i<1000):
    b=i//100    #这里得到的b是百位数,但仅仅是一位数,不是三位数,例如:i为371,那么b为3
    s=(i-b*100)//10 #这里写错了,b是百位数,需要乘100,即s=(371-3*100)//10
    g=i%10
    sum=b**3+s**3+g**3
    if (i==sum):
      print(i,'是水仙花数')
    i+=1
print('游戏结束')

马露茜 发表于 2020-9-9 13:52:47

谢谢你!我明白啦

马露茜 发表于 2020-9-9 21:30:07

zhongguozkh 发表于 2020-9-8 17:14
也可以Ctrl+N,再输入。

谢谢!
页: [1]
查看完整版本: 运行不出结果