两种求幂算法
递归的方法, 代码如下:
递归
两种方法都利用分治法来实现。
double Pow1(double base, int exponent)
{
if (exponent == 0)
return 1;
if (exponent == 1)
return base;
if (exponent & 1)
return Pow1(base * base, exponent / 2) ;
else
return Pow1(base * base, exponent / 2)* base;
}
非递归实现:
int pow2(int base, int exponent){
if (1 == exponent) return base;
if (0 == exponent) return 1;
int res = 1;
while (exponent){
if (exponent&1)
res *= base;
exponent >>= 1;
base *= base;
}
return res;
}