思想:二分法
源代码
快速幂(非递归)
ll quickmod(ll a,ll b ,ll mod){
ll ans =1;
while(b){
if(b&1)ans=ans*a%mod;
a = a*a%mod;
b>>=1;
}
return ans;
}
快速幂(递归)
ll Quickmod(ll a,ll b ,ll mod){
if(b==0)return 1;
if(b==1)return a%mod;
a%=mod;
if(b&1)return Quickmod(a,b>>1,mod)*a%mod;
else return Quickmod(a,b>>1,mod)%mod;
}
二分乘法
ll quickmul(ll a,ll b,ll mod){
ll ans = 0;
while(b){
if(b&1)ans=(ans+a)%mod;
a=(a+a)%mod;
b>>=1;
}
return ans;
}
本文深入探讨了快速幂运算的非递归及递归实现方式,并详细解析了二分乘法算法,提供了源代码示例,适用于大数运算场景,如密码学和高性能计算。
6892

被折叠的 条评论
为什么被折叠?



