不会吧不会吧,一道初学者的题目我都没AC,说出去怕被笑死,麻烦各位帮我看下哪里的思路有问题?
su = int(input())
for i in range(100,1000):
g = i % 10
s = i // 10 % 10
b = i // 100
suit1 = 2 * (g+s+b)
suit2 = 2 * (s+b) + g
if suit1 == su:
i = str(i)
print(i+i[::-1])
elif suit2 == su:
i = str(i)
print(i+i[::-1][1:])
稍微看了一下别人怎么写的,他们是列举一万到十万之间的数来一一比较,感觉这样效率太低了
1.i是个int,不是str,你对int切片?先转str再切片
2.按从小到大的顺序输出,那么肯定是先输出所有5位的,再输出6位的
你这是穿插着输出的,肯定不对呀
s = [int(i) for i in range(100,1000) if str(i) == str(i)[::-1]]
print(s)
1个列表推导式就好了