875. 快速幂

Posted 幽殇默

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了875. 快速幂相关的知识,希望对你有一定的参考价值。

在这里插入图片描述
https://www.acwing.com/problem/content/description/877/
模板一:

#include<cstdio>
#include<iostream>
#define ll long long int
using namespace std;
int quick_pow(ll a,ll b,ll c)
{
    int sum=1;
    while(b)
    {
        if(b&1) sum=sum*a%c;
        b=b>>1;
        a=(a*a)%c;
    }
    return sum;
}
int main(void)
{
    int n; cin>>n;
    while(n--)
    {
        ll a,b,c; cin>>a>>b>>c;
        cout<<quick_pow(a,b,c)<<endl;
    }
    return 0;
}

模板二:

#include<cstdio>
#include<iostream>
#define ll long long int
using namespace std;
ll quick_pow(ll a,ll b,ll c)
{
    if(b==0) return 1;
    if(b&1) return a*quick_pow(a,b-1,c)%c;
    else 
    {
        ll t=quick_pow(a,b/2,c)%c;
        return (t*t)%c;
    }
}
int main(void)
{
    int n; cin>>n;
    while(n--)
    {
        ll a,b,c; cin>>a>>b>>c;
        cout<<quick_pow(a,b,c)<<endl;
    }
    return 0;
}

以上是关于875. 快速幂的主要内容,如果未能解决你的问题,请参考以下文章

ACM入门之快速幂

[数论+模板] 快速幂及快速幂求逆元算法模板(模板)

POJ - 2778 ~ HDU - 2243 AC自动机+矩阵快速幂

数论——快速幂,模运算及快速幂求逆元

矩阵快速幂

快速幂