Ich habe an einem Übungsproblem in einer Website gearbeitet und bin irgendwann steckengeblieben.Positionsziffern Summe (Summe der Ziffern in zwei Zahlen basierend auf ihrer Position)
Die Frage ist:
Position Digits Summe
Das Programm muss zwei positive ganze Zahlen als Eingabe akzeptieren und dann Druck der Summe ihrer Einheit Ziffern, zehnten Ziffern und so weiter.
Eingabeformat: Die erste Zeile enthält A und B getrennt durch Leerzeichen.
Ausgabeformat: Die erste Zeile enthält die Summe der Einheitsziffern, zehnte Ziffern usw. mit den durch ein Leerzeichen getrennten Werten.
Randbedingungen: 1 < = A, B < = 9999999
Beispiel Input/Output 1: Input: 23 49
Output: 12 6
Beispiel Input/Output 2: Input: 12456 687
Output: 13 13 10 2 1
Well Ich löste das Problem, aber von 6 Testfällen (die versteckt sind) bestanden 5 Fälle und 1 nicht.
Dies ist mein Code:
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])
ich ein Anfänger bin, so habe ich nur einfache Python-Code, der es zu lange gemacht. Ich überprüfte aber nicht, was darin falsch ist. Irgendeine Hilfe?
Ich habe zuerst den gleichen Fehler gemacht (als ich 'zip_longest' verwenden wollte, dann auf' zfill' umschalten). Aber 'zip_longest' ist immer noch gut, wenn Sie die Ziffern so umkehren, wie Sie es zuletzt getan haben. –
Danke für die Hilfe. Ich denke, ich sollte viel mehr lernen –
@ Jean-FrançoisFabre Meine "+1" ist schon da. Und danke, dass du mich an erster Stelle korrigiert hast. –