求帮忙,我想做一个求三位数的所有水仙花数的程序,为什么我这段代码跑起来结果不对
for a in range(100,1000):for i in range(1,10):
for j in range(0,9):
for k in range(0,9):
if a==i**3+j**3+k**3:
print(a)
本帖最后由 昨非 于 2020-11-8 21:58 编辑
你把两种方法搞混了
for i in range(100,1000):
a = (i //100)
b = ((i - 100*a)//10)
c = (i % 10)
s = a**3+b**3+c**3
if i == s:
print(i)
for i in range(100, 1000):#遍历100到1000所有整数
sum = 0#定义求和变量,初值为0
temp = i
while temp:#当i得值不等于0时,一直循环
sum = sum + (temp%10) ** 3 #temp取余10得到最后一位的数值,sum等于temp各位数之和
temp //= 10 # 注意这里要使用地板除哦~ 这里得到temp的前两位
if sum == i: #判断i是否等于其各位数的三次方之和
print(i)#打印满足情况的i得值 或者这样for i in range(1,10):
for j in range(0,9):
for k in range(0,9):
if i*100+j*10+k==i**3+j**3+k**3:
print(i*100+j*10+k) 三种方法,满意的话记得给个最佳答案 昨非 发表于 2020-11-8 22:01
三种方法,满意的话记得给个最佳答案
最佳答案那个 第二个和第三个range里面的应该是range(0,10)吧 这才是从0到9吧 小可爱. 发表于 2020-11-9 10:08
最佳答案那个 第二个和第三个range里面的应该是range(0,10)吧 这才是从0到9吧
对的,上面的确实不对,感谢指正
页:
[1]