首页 > 代码库 > 【51NOD-0】1046 A^B Mod C

【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

 

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