乘法运算

描述:

给你两个整数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
********************

好坑的题目,辛亏b不算大 :(,一大堆的format。

解法一:

def ans(x,y):

    if x==0 or y==0:
        print("{: >8}".format(x))
        print "x"+("{: >7}".format(y))
        print "--------"
        print ("{: >8}".format(0))
        print "*"*20
    else:
        print("{: >8}".format(x))
        print "x"+("{: >7}".format(y))
        print "--------"
        if len(str(y))==1:
            print ("{: >8}".format(x*y))
            print "*"*20
        if len(str(y))==2:
            print ("{: >8}".format(x*(y%10)))
            print ("{: >7}".format(x*(y/10)))
            print "--------" 
            print ("{: >8}".format(x*y))
            print  "*"*20
        if len(str(y))==3:
            print ("{: >8}".format(x*(y%10)))
            print ("{: >7}".format(x*(y/10%10)))
            print ("{: >6}".format(x*(y/100)))
            print "--------" 
            print ("{: >8}".format(x*y))
            print  "*"*20
ans(a,b)


解法二:(简化版)

print '% 8d'%a
print 'x% 7d'%b
c=b
print '-'*8
i=8
while c>0:
    print '% *d'%(i,(c%10)*a)
    c=c/10
    i-=1
if i==7:
    print '*'*20
else:
    print '-'*8
    print '% 8d'%(a*b)
    print '*'*20



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值