12.数值的整数次方 Java

Posted 飞晨信息

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了12.数值的整数次方 Java相关的知识,希望对你有一定的参考价值。

题目描述

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。

 

这道题看似简单,其实BUG重重。要注意的问题:

  1 关于次幂的问题特殊的情况,比如次幂为负数,或者基数为0时等等复杂的情况

  2 机器中浮点数的比较是有误差的,因此double类型的比较,不能用简单的a==0来比较。一般的比较方式是,相减的差在一个很小的区间内,我们就认为是相等的。

 

public static double power(double base, int exponent) {
double mul = 1.0;
/* 如果exponent = 0 输出1 */
if (exponent == 0) {
return 1.00000;
}
/* 如果base = 0 输出0 */
if (base >= -0.000001 && base <= 0.000001) {
return 0;
}
/* 如果指数大于0 */
if (exponent > 0) {
for (int index = 0; index < exponent; index++) {
mul *= base;
}
} else {
exponent = -exponent;
for (int index = 0; index < exponent; index++) {
mul *= base;
}
mul = 1.0 / mul;
}
return mul;
}

以上是关于12.数值的整数次方 Java的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer 12.数值的整数次方

剑指Offer-Java-数值的整数次方

剑指offer 12. 数值的整数次方

12.数值的整数次方

剑指Offer面试题11(Java版):数值的整数次方

《剑指Offer》题目:数值的整数次方