python做题记录之乘法运算

题目描述:
给你两个整数a和b(0 < a,b < 1000),按笔算的格式输出a乘以b(a是被乘数,b是乘数)的运算过程, 最后再输出一行 “********************”(二十个星号)。 乘号用小写字母“x”表示,每行末尾不能有多余的空格。具体输出格式见下面的例子: 例1: a=89, b=13,则输出: 89 x 13 -------- 267 89 -------- 1157 ******************** 例2: a=2, b=2,则输出: 2 x 2 -------- 4 ********************
示例:
输入:a = 89 b = 13

输出: 89 x 13 -------- 267 89 -------- 1157 ********************

这题首先不要被题目迷惑了,输出应该是这样的
在这里插入图片描述
首先应该解决的问题是右对齐的问题,这里可以用
‘%ad’%b a为一共占据多少位置,b为需要补的数且a要是具体数字
如果a是参数的话要用 ‘%*d’%(a,b)
然后其他就好办了
还需要注意一个细节,b为一位数时只需要一个 --------

bemul='%8d'%a
mul='x'+'%7d'%b
fen='--------'
res=[bemul,mul,fen]
num=8
l=len(str(b))
b1=b#储存b的值,因为后面还需要用到b
for i in range(l):
    left=b%10
    res.append('%*d'%(num,left*a))
    b=b//10
    num-=1
if l>1:#如果b大于一位数
    res.append(fen)
    res.append('%8d'%(a*b1))
res.append('********************')
for i in res:
    print(i)

猜你喜欢

转载自blog.csdn.net/qq_53029299/article/details/114377484