Java教程

俄罗斯农民乘法

本文主要是介绍俄罗斯农民乘法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

以12 * 9为例

第一个数(12)乘2,第二个数(9)除以2
如果第二个数为偶数,则继续;
如果第二个数为奇数,需要保留第二个数乘2的结果;
直到第二个数等于0,累加前面保留的第一个数

12 9(保留)
24 4(舍掉)
48 2(舍掉)
96 1(保留)
192 0(舍掉)

所以最后结果 12 + 96 = 108(= 12 * 9)

原理,利用位运算,一个数乘2,另一个数除以2,不难理解,
但是被除数为奇数时,就会舍掉一部分,所以需要保留被舍掉的那部分,
即当被除数为奇数时,保留乘2的那个数,最后累加即可.

这篇关于俄罗斯农民乘法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!