快速幂

快速幂

作用:快速求幂,这个快体现在哪些方面呢?举个例子,2^5
朴素算法就是将2连乘5次,需要计算5次,而用快速幂的话,就是将5拆成二进制,5=(101)2,那么就相当于是 2的1乘2的平方乘2的0乘2的一次方乘2的1乘2的0次方,计算了三次,所以快速幂更快。

int fust_pow(int a,int b,int c)//相当于a^b%c
{
    int ans=q;
    a%=c;
    while(b)
    {
        if(b%2)
            ans=(ans%c*ans%c)%c;
        a=(a%c*a%c)%c;
        b/=2;
    }
    return ans%c;
}
posted @ 2018-11-23 00:29  Cherish486  阅读(37)  评论(0编辑  收藏  举报