题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
解题思路
- exponent为负数,结果取倒数
- 从二进制的角度看
211可以表示为21011=21000∗210∗21那么程序如下
public class Solution {
public double Power(double base, int exponent) {
double result = 1.0;
int e = Math.abs(exponent);
while(e != 0){
if((e&1) == 1)result *= base;
base *= base;
e >>= 1;
}
if(exponent < 0)result = 1 / result;
return result;
}
}