//11写成二进制为1011,11=23+21+2^0
//a11=a(23+21+2^0)
#include
#include
#include
#include
using namespace std;
#define ll long long
ll n,m,k;
ll power(ll n,ll m,ll k)
{
ll ans=1%k;
while(m)
{
if (m&1)//(&的作用是判断最后一位是1还是0)
ans=ansn%k;
n=nn%k;//将上一次的n进行平方(每次都平方一下)
m>>=1;//将二进制的m右移一位
}
return (ans%k);
}
int main()
{
cin>>n>>m>>k;
n%=k;
cout<<power(n,m,k);
return 0;
}添加链接描述
AcWing 89. a^b
最新推荐文章于 2024-01-17 15:11:23 发布