法一:
int val=1;
while(p--)
val *=n;
法二:
int power(int n,int p){
return (p==0)?1:n*power(n,p-1);
}
法三:
#include <iostream>
using namespace std;
template<int N, int P> struct Power {
enum { val = N * Power<N, P-1>::val };
};
template<int N> struct Power<N, 0> {
enum { val = 1 };
};
int main() {
cout << Power<2, 5>::val << endl; // 32
}
评论