标签:思想 bsp 处理 次方 back font 整数 代码 就是
快速幂就是快速求一个数的幂
两个整数a,b,求a^b
把b分解成几个2的次方的和,然后就相当于做一个指数乘法
比如说2^11
11=2^3+2^1+2^0
ans=2^(2^3+2^1+2^0)=2^(2^3)*2^(*2^1)+2^(2^0)
代码:
long long ksm(long long a,long long b){
long long ans=1;
while(b){
if(b&1==1) ans*=a; //是因为3/2=1,有一个a^1要处理
a*=a;
b/=2;
}
return ans;
}
有一道思想一致的题:求a*b%p的结果,1<=a,b。p<=10^18。
long long zc(long long a,long long b,long long c){
long long ans=0;
while(b){
if(b&1==1)ans=(ans+a)%c;
a=(a+a)%c;
b/=2;
}
return ans;
}
标签:思想 bsp 处理 次方 back font 整数 代码 就是
原文地址:https://www.cnblogs.com/SUMMER20020929/p/9751109.html