和cmath库里的pow函数作用一样,但速度快的多,原理是b可以拆成n个2的幂值,然后把b转化为二进制,判断各位上是否为一,是则累乘,否则a*a
上代码
#include<iostream>
#include<cstdio>
using namespace std;
int a,b,c;
int res;
int pw(int x,int y);
int main(){
cin>>a>>b;
c=pw(a,b);
cout<<c<<endl;
return 0;
}
int pw(int x,int y){
res=1;
while(b){
if(b&1) res*=a;
a*=a;
b>>=1;
}
return res;
}
GG