1. 程式人生 > >64位整數的乘法

64位整數的乘法

這道題主要考察大數的乘法,其主要思想是將大數通過二進位制數進行計算

例如15*5

我們將15寫為1111(2)進行計算!

//  Copyright © 2018 . All rights reserved.
//

#include <iostream>
using namespace std;
typedef long long int ll;
ll add(ll a, ll b, ll mod)
{
    long long result = 0;
    while (b)
    {
        result = (result + ((b&1) * a) % mod) % mod;
        a = (a<<1) % mod;
        b >>=1;
    }
    return result;
}
int main()
{
    ll a,b,c;
    cin>>a>>b>>c;
    cout<<add(a,b,c);
}