Implement pow(x, n).
class Solution {
public:
double pow(double x, int n) {
if (n==0) {
return 1.0;
}
//兼容 n = INT_MIN
if (n < 0) {
return 1.0/(pow(x, -n-1)*x);
}
double res = pow(x, n/2);
if (n%2 == 0) {
return res*res;
}
return res*res*x;
}
};
本文介绍了一种使用快速幂算法计算x的n次方的方法。该算法通过递归地将指数减半来减少计算次数,提高了计算效率。对于负指数的情况,通过取倒数的方式进行处理。
291

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



