题目描述
实现 pow(x, n) ,即计算 x 的 n 次幂函数。
代码段
class Solution {
public:
double myPow(double x, int n)
{
if(n==0)
return 1;
else if(n%2==1)
{
return myPow(x,n-1)*x;
}
else if(n%2==-1)
{
return myPow(x,n+1)*(1/x);
}
else
{
double tmp=myPow(x,n/2);
return tmp*tmp;
}
}
};
思路亮点
通过递归来计算x的n次幂
依次递减幂的递归次数太多,内存空间和时间消耗大
若转换成偶数次幂的递归则可以由2的2n次方等于2的n次方乘以2的n次方这样的思路有效减少递归的次数