剑指offer

16_数值的整数次方

2020-05-19  本文已影响0人  是新来的啊强呀

要求:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0

分析:要考虑指数为负数的情况,若为负数,结果取倒数

public static double Power(double base, int exponent){
        if(exponent == 0){
            // 指数为0时,返回0
            return 0;
        }
        if(exponent == 1){
            // 指数为1时,返回它本身
            return base;
        }
        // isNegative判断指数是否为负数
        boolean isNegative = exponent<0;
        double result = 1;
        // 将指数取绝对值
        exponent = exponent>=0? exponent:(-exponent);
        for(int i=1;i<=exponent;i++){
            result = result*base;
        }
        // 返回时,若指数为负数,则结果取倒数,其他直接输出
        return isNegative? 1/result:result;
    }
上一篇下一篇

猜你喜欢

热点阅读