找3位内的水仙花数
我写的好像出问题了,但是找不着问题在哪····是我对for的理解有问题吗
放代码
n = 100
i = 1
while n <= 999:
print('1')
n = str(n)
for bek in n:
if i == 1:
a = bek
i = i + 1
if i == 2:
b = bek
i = i + 1
if i == 3:
c = bek
print('2')
n = int(n)
a = int(a)
b = int(b)
c = int(c)
if n == a * a * a + b * b * b + c * c * c:
print(n,'是水仙花数')
n = n + 1
i = 1
print('3')
那个print 1,2,3是我用来自检问题用的····看的时候忽略掉就是了 397 是水仙花数
你的程序运行结果之一,就拿397l为例,看你的程序运行过程
while n <= 999:
print('1')
n = str(n)
for bek in n:
if i == 1:
a = bek
i = i + 1
if i == 2:
b = bek
i = i + 1
if i == 3:
c = beki
print('2')
第一次for循环,i=1,a=3-->i=2 b=3-->i=3 c=3
第二次for循环,i=3,c=9
第三次for循环 i=3,c=7
判断if n == a * a * a + b * b * b + c * c * c是否成立
397==3*3*3+3*3*3+7*7*7
显然成立,所以结果就错了
i = 1
while n <= 999:
n = str(n)
for bek in n:
if i == 1:
a = bek
if i == 2:
b = bek
if i == 3:
c = bek
i+=1
n = int(n)
a = int(a)
b = int(b)
c = int(c)
if n == a * a * a + b * b * b + c * c * c:
print(n,'是水仙花数')
n = n + 1
i = 1
正确代码如上 1q23w31 发表于 2020-9-10 15:31
正确代码如上
谢谢,果然是我for没学好{:10_266:}{:10_266:}{:10_266:}
页:
[1]