分治算法——Karatsuba Multiplication大数乘法

此算法适用于位数比较大的数字做乘法。
以例子的形式进行进一步说明:
例一:求12*34
步骤:

  1. 首先将两个数字的个位十位分离
  2. 将两个数字的十位数字相乘1 * 3 = 3
  3. 将两个数字的个位数字相乘2 * 4 = 8
  4. 将两个数字的个位与十位相加 1 + 2 = 3,3 + 4 = 7
  5. 将两个数字的数位和相乘3 * 7 = 21
  6. 用步骤5的结果减去步骤2和步骤3的结果21 - 3 - 8 = 10
  7. 将数字按照数字权顺序相加
						3
						10
					+     8
			-----------------------
			            408

例二:求123*456
步骤:

  1. 首先将两个数字进行分组为12 3, 45 6
  2. 将两个数字的高位组相乘12 * 45 = 540
  3. 将两个数字的低位组相乘3 * 6 = 18
  4. 将两个数字的高位组与低位组相加12 + 3 = 15, 45 + 6 = 51
  5. 将两个数字的加和相乘15 * 51 = 765
  6. 用步骤5的结果减去步骤2和步骤3的结果765 - 540 - 18 = 207
  7. 将数字按照数字权顺序相加
                 540
                  207
             +      18
         ---------------------
             =   56088

例三:求123*456

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿扬来了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值