整数乘法
输入数据范围在long long范围内,但直接做乘法可能会爆
考虑采用快速乘,AC了
代码如下:
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll qmul(ll a,ll b,ll p){
ll ans = 0,base = b;
while(a){
if(a&1) ans = (ans + base)%p;
base = (base+base)%p;
a >>= 1;
}
return ans;
}
int main(){
ll a,b,p;
cin>>a>>b>>p;
cout<<qmul(a,b,p);
return 0;
}