1. 程式人生 > >大數乘法(二進位制)

大數乘法(二進位制)

對於一些非常大的數如果使用直接乘法的話,時間會非常長,對此我們可以把其中的較大的那個數轉變成二進位制再來計算會簡單許多。
用程式碼實現如下

long long int quick(long long a,long long b)
{
    long long int sum=0;
    if(a>b)
    {
        a=a+b;
        b=a-b;
        a=a-b;
    }
    while(b)
    {
        if(b&1)sum=(sum+a);
        a<<=1;
        b>>=1;
    }
    return sum;
}