题目描述:
实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。
解题分析:
使用递归分解即可,不过需要注意的是n为负的最小值的时候,-n会超过int的范围,需要定义long long N=n。
class Solution {
public:
double myPow(double x, int n) {
long long N=n;
bool isPositive = N>=0 ? true : false;
double ans=0;
if(isPositive)
ans=quickPow(x, N);
else
ans=quickPow(x, -N);
return n>=0 ? ans : 1/ans;
}
double quickPow(double x, long long n){
if(n==0)
return 1;
double y = myPow(x, n/2);
if(n%2==0)
return y * y;
else
return x * y * y;
}
};
本文介绍了一种通过递归方式实现快速幂运算的方法,能够高效地计算x的n次方。该方法首先判断指数n的正负,并针对负指数进行特殊处理。接着采用递归方式分解幂运算,通过减少乘法次数来提升效率。
592

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



