面试题11. 数值的整数次方

来源:互联网 发布:echarts.min.js下载 编辑:程序博客网 时间:2024/05/19 17:10

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

思路:
核心是一个循环,进行不断累乘。

注意特殊输入:
exponent为0的情况
exponent为负数的情况

另外,在计算机中,判断两个double型是否相等,只能判断它们的绝对值只差是否在一个很小的范围内
这是加分点

public class Solution {    public double Power(double base, int exponent) {        double result = 1.0;        int exponent_abs = Math.abs(exponent);        if(equal(base, 0.0) && exponent < 0) { // 0的负数幂            return 0.0;        }        if(equal(exponent, 0.0)) {            return 1;        }else {            for(int i = 0; i < exponent_abs; i++) {                result *= base;            }        }        return exponent > 0 ? result : 1 / result;    }    // 在计算机中,判断两个double型是否相等    // 只能判断它们的绝对值只差是否在一个很小的范围内    public boolean equal(double n1, double n2) {        return (n1 - n2 > -0.0000001) && (n1 - n2 < 0.0000001);          }}