数值的整数次方

题目描述

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

解题思路

  • xn = (x * x)n/2 n%2 = 0;
  • xn = x * (x2)n/2 n%2 = 1;

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Solution {
public double Power(double base, int exponent) {
if (exponent == 0){
return 1;
}
if (exponent == 1){
return base;
}
//当为负数时结果为其倒数
boolean isNegative = false;
if (exponent < 0) {
exponent = -exponent;
isNegative = true;
}
double pow = Power(base * base, exponent / 2);
if (exponent % 2 != 0){
pow = pow * base;
}
return isNegative ? 1 / pow : pow;
}
}
坚持原创技术分享,您的支持将鼓励我继续创作!