看看这里出了什么问题
要求10~1000的水仙花数,就是各个数位上的立方和等于原数字。代码如下:for number in range (10,1000):
b=0
for i in str(number):
b=int(i)**3+b
if b==number:
print(number)
输出结果是这样的
为什么370输出了两次? 你应该是内循环完成一次才进行一次判断的,就是得到三位数各个位上立方和之后才进行判断,不然就像这样, 3**3 + 7**3 == 370,输出一次,3**3 + 7 ** 3 + 0 ** 3 == 370 因为你b默认给了个0的值,导致37和370输出的结果都是370。 for number in range (10,1000):
b=0
for i in str(number):
b=int(i)**3+b
if b==number:
print(number)
改一下缩进就好了,因为你37就满足,加个0的立方当然也满足了,
你把判断放后边就行
页:
[1]