题解

吴晨曦  •  2天前


这个题目主要是快速幂,而且这个快速幂好像在cspj2023初赛题目里面有代码

快速幂的原理是幂次方的运算,即a^n a^m=a^n+m*,那么每次都进行将指数除以二,最后再平方,或两个x相乘即可,记得模MOD。这里用三元表达式,方便一点。

#include <bits/stdc++.h>
using namespace std;

long long fpow(long long n, long long m, long long MOD) {
    if (m == 1)
        return n;
   	long long x = fpow(n, m / 2, MOD) % MOD;
    return x * x % MOD * (m % 2 == 1 ? n : 1) % MOD;
}

int main() {
    long long n, m, MOD;
    cin >> n >> m >> MOD;
    cout << fpow(n, m, MOD) << endl;
    return 0;
}

评论: