题目:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
public class Solution {
public double Power(double base, int exponent) {
double r = 1;
//分情况讨论base
//1.base为0时:
if(base == 0){
if(exponent >= 0)
return 0;
throw new RuntimeException();//注1
}
//2.base不为0时:
else{
if(exponent == 0)
return 1;
if(exponent > 0){
for(int i=0; i<exponent; i++)
r *= base;
return r;
}
else{
for(int i=0; i<(-exponent); i++)//注2
r *= (1/base);
return r;
}
}
}
}
注1:0没有负数次方,需要报运行时异常:
throw new RuntimeException();
注2:exponent为负数时的情况(循环结束条件加负号,对base的倒数做累乘)。
笔记:
分情况讨论,要全面 --> int型exponent有正有负。