#include<stdio.h>
double PowerWithExponent(double base,int exponent)
{
if(exponent == 0)
return 1.0;
if(exponent == 1)
return base;
double result = PowerWithExponent(base,exponent>>1);
result *= result;
if(exponent & 0x1 == 1)
{
result *= base;
}
return result;
}
利用递归的思想,32是16*16,所以先求出16次方
double result =PowerWithExponent(base,exponent>>1);
然后两个16相乘得出32
result *= result;
然后判断幂是否为奇数,是的话,还需要幂再*1
if(exponent & 0x1)
{
result *= base;
}