【发布时间】:2017-10-22 09:49:00
【问题描述】:
我在一个网站上做一个练习题,但在某个点上卡住了。
问题是:
位置数字总和
程序必须接受两个正整数作为输入,然后 打印它们的个位、第十位等的总和。
输入格式:第一行将包含A和B,用a分隔 空间。
输出格式:第一行将包含个位数的总和, 第十位数字以此类推,数值以空格分隔。
边界条件:1
示例输入/输出 1:输入:23 49
输出:12 6
示例输入/输出 2:输入:12456 687
输出:13 13 10 2 1
好吧,我解决了问题,但在 6 个测试用例(隐藏)中,5 个通过,1 个没有通过。
这是我的代码:
a,b = input().split()
assert 1<=len(a)<=7 and 1<=len(b)<=7
assert a.isdigit() == True and b.isdigit() == True
if len(a)>1 and len(b)>1:
assert a[0] != '0' and b[0] != '0'
h = []
m = []
def pp(a,b):
c = []
for i in range(1,len(a)+1):
x = int(a[-i])+int(b[-i])
c.append(x)
return c
if len(a)==len(b):
g = pp(a,b)
y = [str(i) for i in g]
for i in range(0,len(y)-1):
y[0] = y[0]+' '+y[1]
y.remove(y[1])
print(y[0])
if len(a)>len(b):
d = abs(len(a)-len(b))
for i in range(0,d):
h.append(a[i])
r = a.replace(a[0:d],'')
p = pp(r,b)
p = p+h[::-1]
t = [str(i) for i in p]
for i in range(0,len(t)-1):
t[0] = t[0]+' '+t[1]
t.remove(t[1])
print(t[0])
if len(a)<len(b):
d = abs(len(a)-len(b))
for i in range(0,d):
m.append(b[i])
u = b.replace(b[0:d],'')
q = pp(a,u)
q = q + m[::-1]
e = [str(i) for i in q]
for i in range(0,len(e)-1):
e[0] = e[0]+' '+e[1]
e.remove(e[1])
print(e[0])
我是初学者,所以我只使用了简单的python代码,这使得它太长了。 我检查了但没有得到它有什么问题。有什么帮助吗?
【问题讨论】:
标签: python python-2.7 python-3.x