problem:
Implement pow(x, n).
solution:
double myPow(double x, int n) {
if (n == 1) return x;
if (n == 0) return 1;
if (n < 0)
{
x = 1 / x;
n = -n;
}
if (n % 2)
{
return myPow(x, n / 2) * myPow(x, n / 2 + 1);
}
return myPow(x, n / 2) * myPow(x, n / 2);
}
这道题虽然是中等题,但是还蛮简单的,由很多种不同的算法,但大概也就O(logn)的复杂度。
本文介绍了一种快速计算x的n次幂的方法,通过递归将问题规模减半,达到O(logn)的时间复杂度。适用于计算机科学中的数学运算问题。
593

被折叠的 条评论
为什么被折叠?



