此算法在计算机容易高效执行.原理是:
而乘2,除2都可以通过左移右移一位实现.
int RussianMul(int m, int n)
{
int remain = 0;
while(m != 1)
{
// odd 奇数
if (m % 2 != 0)
{
m = (m-1)/2;
remain += n;
n *= 2;
}
// even 偶数
else
{
m /= 2;
n *= 2;
}
}
return n + remain;
}