求double类型的n次方
剑指offer系列面试题
package com.study;
/*
* 数值的整数次方
* 要求:实现函数 double Power(double base, int exponent) 求base的exponent次方
* */
public class suanfa9 {
public static double Power(double base, int exponent) {
double result = 1.0;
if(Math.abs(base - 0.0) < 0.000001) //防止出现底数为0
return base;
if(exponent < 0) {
return 1/Power(base, Math.abs(exponent));
}
if(exponent == 0) {
result = 1;
}
while(exponent > 0) {
result = result*base;
exponent --;
}
return result;
}
public static void main(String[] args) {
System.out.println(Power(0,-6));
}
}
备注:
1.在Java里,求绝对值,用静态类Math,这是包含在java.lang包的。
2.判断两个double数是否相等,不能用 == 号,只能在绝对值的基础上取差值。
3.求指数幂的时候,应该想到负整数和0这两种特殊情况。