总结——数论:快速幂

注意:依据题意就决定用int/long long

1. 快速幂:求ab 

int fastPow(int a,int b){
    int ans=1,base=a;
    while(b){
        if(b&1!=0)
          ans*=base;
        base*=base;
        b>>=1;
  }
    return ans;
}

 

2. 快速幂取模:ab%c

int qsm_mod(int a,int b,int c){
    int ans=1;
    while(b)
    {
        if(b&1)
            ans=(ans*a)%c;
        a=(a*a)%c;
        b=b>>1;
    }
    return ans;
}

 

posted @ 2018-03-27 11:59  Travelller  阅读(130)  评论(0编辑  收藏  举报