快速幂模板

2018-01-20  本文已影响0人  接骨木go

递归算法

long long quick_pow(int x,int y){
    if (y==1) return x; 
    else if (y%2==0) return (int)pow(quick_pow(x,y>>1),2)%1000;
    else return (int)pow(quick_pow(x,y>>1),2)*x%1000;
}

非递归算法

long long quick_pow(int x,int y){
    int ans=1;
    x%=mod;
    while(y!=0){
        if (y&1) ans=(ans*x)%mod;
        y>>=1;
        x=x*x%mod;
    }
    return ans;
}
上一篇 下一篇

猜你喜欢

热点阅读