描述:
给你两个整数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