题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方
思路分析:
分三种情况:exponent=0或大于0或小于0
(1)等于0时,直接返回1;
(2)大于0时,用一个while循环,然后exponent--,判断是否大于0
(3)小于0时,用一个while循环,然后exponent++,判断是否小于0
public class Solution {
public double Power(double base, int exponent) {
double result=1d;
if(exponent>0){
while(exponent>0){
result*=base;
exponent--;
}
return result;
}else if(exponent==0){
result=1;
return result;
}else{
while(exponent<0){
result*=1/base;
exponent++;
}
return result;
}
}
}
或用C++
class
Solution {
public
:
double
Power(
double
base,
int
exponent) {
int
p =
abs
(exponent);
double
r = 1.0;
while
(p){
if
(p & 1) r *= base;
base *= base;
p >>= 1;
}
return
exponent < 0 ? 1/ r : r;
}
};