用Python模拟整数乘法的小学竖式计算方法

模拟整数乘法的小学竖式计算方法
示例:

关于这个计算的思路:
是将较小的数从个位开始,把每一位数乘以较大的乘数,得到的结果自取一行,逐行向前进一个位子,再最后竖着相加得到结果,用计算机可以直接得出结果,所以问题就是怎么把过程按照正确的格式输出出来,相关代码可以参考下面

a=int(input())
b=int(input())
c="*)"
d="----------------"
def do(a,b):
    kuan=len(str(a*b)) # 获取计算结果的长度
    i=0
    print(str(max(a,b)).rjust(kuan)) # 第一行写的是最大的乘数,总长度是计算结果的长度
    print(c,str(min(a,b)).rjust(kuan-3)) # 第二行写的是"*)"这个符号加上更小的乘数,靠右输出,总长度是计算结果的长度
    print(d) # 打印分割线
    m=min(a,b)
    mm=list(map(int,reversed(str(m)))) # 计算法则中较小的每个位的数都要乘大的数,所以把小的乘数倒序放到列表里
    for x in mm:
        f1=x*max(a,b) # 计算列表的每一个数*大的乘数
        print((str(f1)+" "*i).rjust(kuan)) # 每次计算都要输出
        i+=1 # 每输出一次后面的空格都要加一次
    print(d) # 再输出一次分割线
    print(a*b) # 输出结果
do(a,b)

本文地址:https://blog.csdn.net/m0_51078229/article/details/112004895