快速幂模板
思路:二分+位运算
#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; }