88pts求助大佬们
查看原帖
88pts求助大佬们
1345783
No_fishing楼主2024/9/15 19:39

rt,今天突发奇想用递归写,然而WA掉了。。。

先用的unsigned int,WA了之后改成long long了,然而还是一样。。。

#include <iostream>

using namespace std;

long long qpow(long long x, long long y, long long mod)
{
    if (y == 0) return 1;
    if (y == 1) return x % mod;
    long long cnt = (qpow(x, y / 2, mod) % mod) % mod;
    if (y % 2 == 0) return (cnt % mod) * (cnt % mod) % mod;
    else return (x % mod) * (cnt % mod) * (cnt % mod) % mod;
}

int main()
{
    long long a, b, p;
    cin >> a >> b >> p;
    cout << a << "^" << b << " mod " << p << "=" << (qpow(a, b, p) % p);
    return 0;
}
2024/9/15 19:39
加载中...