n次幂

50. Pow(x, n)

实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。

示例 1

1
2
输入:x = 2.00000, n = 10
输出:1024.00000

示例 2:

1
2
输入:x = 2.10000, n = 3
输出:9.26100

示例 3:

1
2
3
输入:x = 2.00000, n = -2
输出:0.25000
解释:2-2 = 1/22 = 1/4 = 0.25

提示:

  • -100.0 < x < 100.0
  • -231 <= n <= 231-1
  • n 是一个整数
  • 要么 x 不为零,要么 n > 0
  • -104 <= xn <= 104
指数降幂法

将n转换为二进制

image-20240307180119287 image-20240307180315855
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public double myPow(double x, int n) {
if(x == 0.0) return 0.0;
long b = n;
double sum = 1.0;
if(b < 0){
x = 1/x;
b = -b;
}

while(b > 0){
if((b & 1) == 1) sum *= x;
x *= x;
b = b >> 1;
}
return sum;
}
}
  • 时间复杂度 O(log⁡n) : 二分的时间复杂度为对数级别。

n次幂
http://example.com/2023/06/08/算法/数学相关/6. n次幂/
作者
PALE13
发布于
2023年6月8日
许可协议