实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。
思路:看到这个题我们可以一个一个乘下去
即
public static double myPow(double x, int n) {
if (x==0){
return x;
}
if (n==0){
return (double) 1;
}
double res = 1.0;
if (n>0){
while (n>0){
n--;
res = res*x;
}
}
if (n<0){
n=-n;
x=1/x;
while (n>0){
n--;
res = res*x;
}
}
return res;
}
本以为会 直接 ac 没想到
想了一想这个题目是中等 肯定不会 有常规思路
不如 每次 让它 平方相乘
这样可能会小一半呢
就是将 x^2次方来进行使用
再就是遇见越界的问题
会出现以上结果 如果int 32 位保存不了怎么大的数字 就转换成long 来进行保存
下面使用cout来进行long保存
if (x==0){
return x;
}
long cout = n;
if (cout==0){
return (double) 1;
}
double res = 1.0;
if (cout<0.0){
cout=-cout;
x=1/x;
}
while (cout>0){
if (cout%2==1){
res = res*x;
cout=cout-1;
}
x=x*x;
cout=cout/2;
}
return res;
最终结果