AD钙仔 2021-07-24 17:03 采纳率: 33.3%
浏览 62
已结题

本人新入坑,实在找不出哪错了,代码正确率90%,求解惑!!!

python是可以直接a+b求解的,这里只是想实验一下思路,结果翻车了😤

img

img

代码如下:
m,n=input(),input()
s=[]
a=[]
b=[]
r=['0']
for i in range(len(m)):
a.append(m[i])
a.reverse()
for i in range(len(n)):
b.append(n[i])
b.reverse()
if len(m)>len(n):
for i in range(len(n),len(m)):
b.append('0')
else:
for i in range(len(m),len(n)):
a.append('0')
for i in range(len(a)):
x=int(a[i])
y=int(b[i])
z=int(r[i])
if int((x+y+z)/10)==0:
r.append('0')
s.append(str(x+y+z))
else:
r.append('1')
s.append(str((x+y+z)%10))
s.reverse()
print(''.join(map(str,s)))

求指正!!!

  • 写回答

1条回答 默认 最新

  • 关注

    你最高位的进位没有添加到s列表中
    比如 99 + 1 你代码的计算结果是 00

    你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

    m,n=input(),input()
    s=[]
    a=[]
    b=[]
    r=['0']
    for i in range(len(m)):
        a.append(m[i])
    a.reverse()
    for i in range(len(n)):
        b.append(n[i])
    b.reverse()
    if len(m)>len(n):
        for i in range(len(n),len(m)):
            b.append('0')
    else:
        for i in range(len(m),len(n)):
            a.append('0')
    for i in range(len(a)):
        x=int(a[i])
        y=int(b[i])
        z=int(r[i])
        if int((x+y+z)/10)==0:
            r.append('0')
            s.append(str(x+y+z))
        else:
            r.append('1')
            s.append(str((x+y+z)%10))
    if r[-1]=='1':
        s.append(r[-1])
    s.reverse()
    print(''.join(map(str,s)))
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月1日
  • 已采纳回答 7月24日
  • 创建了问题 7月24日