1、递归
#include<iostream>
using namespace std;
int exp2(int a,int n){ //求a^n
if(a == 0) return 0;
if(n == 0) return 1;
if(n >= 1){
int x = exp2(a,n/2);
if(n%2) return a*x*x;
else return x*x;
}
}
int main(){
int a,n;
cin>>a>>n;
int result = exp2(a,n);
cout<<result;
return 0;
}
2、递推
#include<iostream>
using namespace std;
int exp2(int a,int n){ //求a^n
int i = n,b = a,s = 1;
while(i >= 1){
if(i%2) s *= b;
i /= 2;
b *= b;
}
return s;
}
int main(){
int a,n;
cin>>a>>n;
int result = exp2(a,n);
cout<<result;
return 0;
}