题目描述
实现 pow(x, n) ,即计算 x 的 n 次幂函数。
示例 1:
输入:x = 2.00000, n = 10输出:1024.00000示例 2:
输入:x = 2.10000, n = 3输出:9.26100示例 3:
输入:x = 2.00000, n = -2输出:0.25000解释:2-2 = 1/22 = 1/4 = 0.25
思路:
例如计算2的10次方
可以采用分治法,但是要分成奇数和偶数两种情况讨论。
class Solution {
public double myPow(double x, int n) {
double res=1;
if(n==0){
return 1;
}
if(n<0){
x=1/x;
//处理负数转正后的越界问题
if(n==-2147483648){
n=2147483647;
res=x;
}else{
n=-n;
}
}
while(n>1){
if(n%2==0){
x=x*x;
n=n/2;
}else{
n=n/2;
res=res*x;
x=x*x;
}
}
return res*x;
}
}
\