(Leetcode 50)快速幂(非取余)的实现方法
加粗样式
斜体样式
今天学习了快速幂的思想,其实就是将所需要计算的次数使用二进制的思想进行分解,然后逐个相乘即可。
double myPow(double x, long n){
if(n < 0)
{
x = 1 / x;
n = -n;
}
double result = 1;
double base = x;
while(n > 0)
{
if(n % 2 != 0)
{
result = result * base;
}
n = n / 2;
base = base * base;
}
return result;
}