剑指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;
}
}
浙公网安备 33010602011771号