AcWing 875. 快速幂
Posted MangataTS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AcWing 875. 快速幂相关的知识,希望对你有一定的参考价值。
题目链接
https://www.acwing.com/problem/content/877/
思路
思路大概就是幂数转化为二进制,然后我们用一个变量记录累乘的结果,然后位权为1的时候我们就将ans更新即可,详情可以看我这一篇博客:https://acmer.blog.csdn.net/article/details/122280910
代码
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int n;
ll a,b,p;
ll ksm(ll a,ll b,ll p)
ll ans = 1LL;
while(b)
if(b & 1) ans = (ans * a) % p;
b >>= 1; a = (a * a) % p;
return ans;
int main()
scanf("%d",&n);
while(n--)
scanf("%lld %lld %lld",&a,&b,&p);
printf("%lld\\n",ksm(a,b,p));
return 0;
以上是关于AcWing 875. 快速幂的主要内容,如果未能解决你的问题,请参考以下文章