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

数值的整数次方

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));
    }
}

在这里插入图片描述

在这里插入图片描述

全部评论

相关推荐

10-25 12:05
已编辑
湖南科技大学 Java
若梦难了:我有你这简历,已经大厂乱杀了
点赞 评论 收藏
分享
评论
1
1
分享
牛客网
牛客企业服务