剑指offer之 数值的整数次方

Posted toov5

tags:

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

问题描述:实现函数double power(double base,int exponent),求base的exponent次方。不能使用库函数,同时不需要考虑大数问题。

package Problem11;

public class Power {
    /*
     * 问题描述: 实现函数double power(double base,int exponent),求base的exponent
     * 次方。不能使用库函数,同时不需要考虑大数问题。
     */

    /**
     * @param args
     */
    public double power(double base, int exponet) throws Exception {
        double result = 0.0;
        if (equals(base, 0) && (exponet < 0)) {
            throw new Exception("0的负数次幂无意义");
        }
        if (exponet == 0) {
            return 1.0;
        }
        if (exponet < 0) {
            result = powerWithUnsignedExponent(base, -exponet);
        } else {
            result = powerWithUnsignedExponent(base, exponet);
        }
        return result;
    }

    private double powerWithUnsignedExponent(double base, int exponet) {
        double result = 1.0;
        for (int i = 1; i <= exponet; i++) {
            result = result * base;
        }
        return result;
    }

    // 由于计算机中表示小数都有误差,不能用等号判断两个小数是否相等。如果两个小数的差的绝对值很小
    // 我们就可以认为它们是相等的
    private boolean equals(double number1, int number2) {
        if ((number1 - number2 > -0.00000001)
                && (number1 - number2) < 0.00000001) {
            return true;
        }
        return false;
    }

  

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

剑指offer十二之数值的整数次方

校招面试 之 剑指offer第16题 数值的整数次方

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

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

剑指offer数值的整数次方

数值的整数次方-剑指Offer