python实现大整数相乘---格子乘法

        以前做ACM的时候,许多人都通过 BigInteger 来实现大数乘法,让我记忆犹新的事2012年的辽宁省赛在大连大学,第一道水题就是大整数乘法,那时还不会java。 大数乘法的实现是基于印度的格子乘法,使用这种方法,计算 m 位数乘以 n 位数只需要创建一个 m+n 位的数组保存结果即可。

今天我们来用python来模拟一下格子算法的运算过程,python来写算法还是很简单的。

下面是从维基百科上爬下来的图片和详细步骤。

第一步:画带斜线的格子,将第一数(58)写在格子顶部,第二数(213)书写着格子的右侧如图,格子斜线下方写下乘积德个位数,格子斜线之上写入乘积的十位数。

第二步:将每个格子顶上数字与同一格子右边的数字相乘,将乘积逐个写入格子内,然后自下而上按斜线将数字相加,将所得的和写在格子图之下或左边:

第三步:从格子左边自上而下,接格子下边自左至右,读出乘积:12354

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值