思路:二分+位运算
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int power(int a,int b)
{
int r=1,base=a;//r存结果,base存每一次运算的乘积
while(b!=0)
{
if (b&1) r*=base;//幂数二进制的最后一位如果为1则与base相乘
base*=base;//每次相乘完后base要乘一次
b>>=1;//幂数右移一位
}
return r;
}
int main ()
{
int n,m;
cin>>n>>m;
cout<<power(n,m);
return 0;
}