剑指Offer——数值的整数次方

1、题目描述

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

2、代码实现

package com.baozi.offer;

/**
 * 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
 *
 * @author BaoZi
 * @create 2019-07-11-11:02
 */
public class Offer9 {
    public static void main(String[] args) {
        Offer9 offer9 = new Offer9();
        double result1 = offer9.Power(2, 3);
        double result2 = offer9.Power(2, 0);
        double result3 = offer9.Power(2, -3);
        System.out.println(result1);
        System.out.println(result2);
        System.out.println(result3);
    }

    public double Power(double base, int exponent) {
        //1、先定义一个变量用于保存最终结果
        double reslut = 1d;
        int temp = exponent;
        //分三种情况考虑:当给定的指数大于0
        if (temp > 0) {
            while (temp > 0) {
                reslut = reslut * base;
                temp--;
            }
            //当给定的指数等于0
        } else if (temp == 0) {
            reslut = 1;
            //当给定的指数小于0
        } else if (temp < 0) {
            while (temp < 0) {
                reslut = reslut * (1 / base);
                temp++;
            }
        }
        return reslut;
    }
}

  

posted @ 2019-07-11 11:10  包子的百草园  阅读(129)  评论(0编辑  收藏  举报