标签:头文件 math.h 快速 自定义 math 数据量 定义 amp 次方
pow(a, b)是数学头文件math.h里面有的函数,但是它返回值是double类型,数据有精度误差。
可以改成这样:
long long pow(long long a, long long b){
long long ret = 1;
for(long long i = 1; i <= b; i ++){
ret *= a;
}
return ret;
}
const int MOD=1e9+7;
typedef long long ll;
LL pow_mod(LL a, LL b){//a的b次方
if(b == 0) return 1%MOD;
LL ret = pow_mod(a, b/2);
ret = ret * ret % MOD;
if(b % 2 == 1) ret = ret * a % MOD;
return ret;
}
LL mul(LL a, LL b, LL p){//快速乘,计算a*b%p
LL ret = 0;
while(b){
if(b & 1) ret = (ret + a) % p;
a = (a + a) % p;
b >>= 1;
}
return ret;
}
标签:头文件 math.h 快速 自定义 math 数据量 定义 amp 次方
原文地址:https://www.cnblogs.com/fisherss/p/10012340.html