【51NOD-0】1046 A^B Mod C

【算法】快速幂运算

【题解】快速幂的原理是把幂用二进制表示,从最低位a,次低位a2,次次低位(a2)2

#include<cstdio>
long long quick_pow(long long a,long long b,long long c)
{
    long long ans=1;
    while(b>0)
    {
        if(b%2)ans=(ans*a)%c;
        b/=2;
        a=(a*a)%c;
    }
    return ans;
}
int main()
{
    long long a,b,c;
    scanf("%lld%lld%lld",&a,&b,&c);
    printf("%lld",quick_pow(a,b,c));
    return 0;
}
View Code

 

posted @ 2017-05-28 18:37  ONION_CYC  阅读(230)  评论(0编辑  收藏  举报