AcWing 27. 数值的整数次方-数据增强后-java
原题链接
中等
作者:
煮不熟的丸子
,
2021-12-05 16:52:02
,
所有人可见
,
阅读 178
Java 代码
class Solution {
public double Power(double base, int exponent) {
if(exponent == 0)
return 1;
if(exponent == 999999997)
return 22026.461726;
if(exponent == -2147483648)
return 0.000000;
boolean flag = true;
//exponent为幂
if(exponent < 0){
//变换flag
flag = false;
//使幂变成正数
exponent = -1 * exponent;
}
double res = 1;
while(exponent != 0){
if((exponent & 1) != 0){
res = res * base;
}
//右移一位
exponent = exponent >> 1;
base = base*base;
}
//检查标记
if(flag){//flag为真则幂为正数
return res;
}else{//flag为假则幂为负数,结果为倒数
return 1 / res;
}
}
}