CodeXTreme工作室 2023-12-08 21:08 采纳率: 20%
浏览 9
已结题

Python显示出加法竖式

今天想到了加法,就打算做一个竖式,然后……

num1 = input()
num2 = input()
a = []
b = []
for i in range(len(num1)):
    a.append(num1[len(num1)-i-1])
for i in range(len(num2)):
    b.append(num2[len(num2)-i-1])

lenm = max(len(a), len(b)) - min(len(a), len(b))
if int(num1) <= int(num2):
    lenm += 3
print(" "*(lenm) + num1)
if int(num1) <= int(num2):
    print(" + " + num2)
else:
    print(" +" + " "*lenm + num2)

print("-"*(max(len(a), len(b))+4))
ans = []
inin = 0
for i in range(max(len(a), len(b))):
    if i >= len(a):
        num_a = 0
    else:
        num_a = int(a[i])
    if i >= len(b):
        num_b = 0
    else:
        num_b = int(b[i])
    ans.append(num_a + num_b + inin)
    inin = ans[i] // 10
    ans[i] %= 10

lenans = len(ans) - max(len(a), len(b)) + 3
print(" "*lenans, end="")
if inin > 0:
    print(inin, end="")
for i in range(len(ans)):
    print(ans[len(ans)-i-1], end="")

一开始,情况还好。

输入

3
4

输出

   3
 + 4
-----
   7

结果白高兴了……

输入

123
3

输出

   123
 +   3
-------
    126

输入

487
298

输出

487
 +298
-------
   785

到底是什么问题啊😱着了很久都没有找到,有人能帮帮我吗

  • 写回答

1条回答 默认 最新

  • micthis 2023-12-08 22:28
    关注
    maxlen=[input(),input()]
    a,b=map(int,maxlen)
    r=a+b
    maxlen.append(str(r))
    maxlen=max(len(s) for s in maxlen)
    print(f'{a:>{maxlen+4}d}')
    print(f'{"+":>3s}{b:>{maxlen+1}d}')
    print(f'{"-"*(maxlen+4):>{maxlen+5}s}')
    print(f'{r:>{maxlen+4}d}')
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月9日
  • 修改了问题 12月8日
  • 修改了问题 12月8日
  • 修改了问题 12月8日
  • 展开全部