模拟整数乘法竖式算法
Description
如12345 x 678的竖式如下:
12345
x 678
-------------
00098760 ->00098760
0086415 ->00864150
074070 ->07407000
-------------
8369910 ->8369910
现给出两个整数a和b,其中a为m位被乘数,b为n位乘数,则积最多为m+n位,要求输出中间过程共n行,每行位数为m+n位(即把竖式中每行的前后均用0补足,如上式中“->”后的三行),最后还要输出结果(不要输出前导的0)。
如上例:12345 x 678,则a=12345,m=5,b=678,n=3,则积最多为3+5=8位。即:
输入:
12345 678
输出
00098760
00864150
07407000
8369910
Input
一行,两个整数a、b,如:
12345 678
Output
共n+1行,其中前n行为m+n个数字(包括补位的0),最后一行为结果(无前导0),如:
00098760
00864150
07407000
8369910
Sample Input 1
12345 678
Sample Output 1
00098760
00864150
07407000
8369910
Hint
0<a<10^{9}10 ,0<b<10^{6}10
Source
《中学生可以这样学Python》P87,例5-2改编
错在哪里????
a,b=map(str,input().split())
dao_b=b[::-1]
m=len(a)
n=len(b)
for i in range(n):
print(str(int(a)*int(dao_b[i])*10**i).rjust(m+n,'0'))
print(int(a)*int(b))