法一: 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}

评论