俄式乘法
运用场景:当n*m(n和m都非常大时):可以通过式子n/2*2m 来计算。
方法:当n为偶数:n/2*2m,n为奇数:(n-1)/2*2m;当n为奇数时取出2m,累加得到n*m的值。
例子:
核心代码:
while(n != 0)
{
if(n % 2 == 0)
{
n /= 2;
m *= 2;
}
else
{
cout << m;
if(n != 1)
cout << " + ";
n = (n - 1) / 2;
sum += m;
m *= 2;
}
}