64位整数乘法
解题思路:
类似于快速幂思想,将乘数b转成二进制,进行分级运算。
AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll mul(ll a,ll b,ll mod){
ll result=0;
for(;b;b>>=1){
if(b&1)result=(result+a)%mod;
a=a*2%mod;//系数乘2
}
return result;
}
int main(){
ll a,b,p;
cin>>a>>b>>p;
cout<<mul(a,b,p);
}