// 递归计算
public double myPow(double x, int n) {
if (n == 1)
return x;
if (n == -1)
return 1/x;
if (n == 0)
return 1;
if (n % 2 == 0)
{
double tmp = myPow(x, n/2);
return tmp * tmp;
}
else
{
if (n > 0)
{
double tmp = myPow(x, n/2);
return tmp * tmp * x;
}
else
{
double tmp = myPow(x, n/2);
return tmp * tmp * 1/x;
}
}
}
// 迭代计算
public static double myPow_V2(double x, int n) {
double ret = 1;
int p = 0;
while (n > 0)
{
if (n % 2 == 1)
{
ret *= x;
}
x *= x;
n /= 2;
}
return ret;
}
【LeetCode 50】Pow(x, n)
Supongo que te gusta
Origin blog.csdn.net/juttajry/article/details/121927555
Recomendado
Clasificación