快速幂

求 n 的 m 次幂,然后对mod取模。

#include "stdio.h"

int n, m, mod;
long long quick_power(long long x, long long y){
    long long sum = 1;
    while(y){
        if(y & 1){//相当于 y % 2 == 1;
            sum = sum * x % mod;
        }
        y >>= 1;//相当于 y /= 2;
        x = x * x % mod;
    }
    return sum % z;//避免0次幂
}
int main() {
    n = 2, m = 1000000000, mod = 1000;
    printf("%lld\n",quick_power(n,m));
    

    return 0;
}

 

posted @ 2021-04-16 18:14  荣荣荣荣荣荣  阅读(32)  评论(0)    收藏  举报