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)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值