50. Pow(x, n)
这道题目是求x的n次方。 可以选择用n个x相乘,复杂度为O(n)(负数的-n个相乘再求倒数) 另外就是采取分治来算 分解为pow(x,n/2)*pow(x,n/2) 最后的复杂度应该为logn+logn即为O(logn) 代码如下:
public double myPow(double x, int n) { if (n==0) { return 1; } double temp=myPow(x, n/2); if (n%2==0) { return temp*temp; } else { if (n>0) { return temp*temp*x; } else { return temp*temp/x; } } }