AICodeThunder 2023-12-08 21:08 采纳率: 50%
浏览 7
已结题

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日
  • 展开全部

悬赏问题

  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥15 python爬取bilibili校园招聘网站
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件
  • ¥15 不同系统编译兼容问题
  • ¥100 三相直流充电模块对数字电源芯片在物理上它必须具备哪些功能和性能?
  • ¥30 数字电源对DSP芯片的具体要求
  • ¥20 antv g6 折线边如何变为钝角
  • ¥30 如何在Matlab或Python中 设置饼图的高度
  • ¥15 nginx中的CORS策略应该如何配置