题解 | #数值的整数次方#【按指数情况分类】

数值的整数次方

http://www.nowcoder.com/practice/1a834e5e3e1a4b7ba251417554e07c00

思路

此题根据指数的情况来划分即可。

当指数为 0 时,若底数也为 0 ,因 0 的 0 次幂无意义,因此此情况应提示错误信息;

当指数为正数时,将指数个底数相乘返回结果即可;

当指数为负数时,应将底数转为其倒数,并且,若在循环计算时借助指数与当前下标大小作为循环终止条件,则指数应提前转为其相反数。

实现

public class JZ12数值的整数次方 {
    public double Power(double base, int exponent) {
        if (exponent == 0) {
            if (base == 0) {
                try {
                    throw new Exception("0的0次方无意义");
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            return 1;
        } else if (exponent > 0) { //指数为正数
            if (base == 0) {
                return 0;
            }
        } else if (exponent < 0) { //指数为负数
            if (base == 0) {
                try {
                    throw new Exception("当指数为负数,底数为0时无意义");
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            base = 1 / base;
            exponent = -exponent;
        }
        double result = 1;
        for (int i = 0; i < exponent; i++) {
            result *= base;
        }
        return result;
    }


    public static void main(String[] args) {
        JZ12数值的整数次方 s = new JZ12数值的整数次方();
        System.out.println("s.Power(2.00000, 3) = " + s.Power(2.00000, 3));
        System.out.println("s.Power(2.00000, 0) = " + s.Power(2.00000, 0));
        System.out.println("s.Power(2.00000, -2) = " + s.Power(2.00000, -2));
    }
}

在这里插入图片描述

在这里插入图片描述

全部评论

相关推荐

notbeentak...:真的nc,算毕业6月份,要给这种b公司打半年多白工😅
点赞 评论 收藏
分享
牛客37185681...:马德,我感觉这是我面过最恶心的公司,一面是两个女hr,说什么实习前几个月属于试用期,试用期过了才能转成正式实习生,我***笑了,问待遇就是不说,问能不能接受全栈,沙币公司
如果可以选,你最想去哪家...
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务