【python练习】模拟整数乘法竖式算法

模拟整数乘法竖式算法
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}100<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))

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值