package java_study.JianZhiOffer;
import org.junit.Test;
/**
* Created by ethan on 2015/6/23.
* 剑指offer中No11 数值的整数次方
* 注意: base在指数为负数的时候是不能为0的, 不要忽略指数为负数的情况
*/
public class No11数值的整数次方 {
public double power(int base, int exp){
if (base==0 && exp<=0) return 0.0; // 0不能为底数,不处理为抛出异常
if (exp<0) return 1/power(base, -exp);
if (exp==1) return base;
if (exp==0) return 1;
double tmp = power(base, exp/2);
double ans = tmp*tmp;
if ((exp&1)==1){
ans *= base;
}
return ans;
}
@Test
public void test(){
System.out.println(power(3, 5));
}
}
数值的整数次方
最新推荐文章于 2021-02-24 18:52:53 发布