Pow(x,n)

力扣题目链接
实现 pow(x, n),即计算 x 的整数 n 次幂函数。

  • 分治思想,将 x 的 n 次幂分解成两个 x 的二分之 n 次幂
class Solution {
public double myPow(double x, int n) {
// 基本情况:如果指数 n 为 0,任何数的 0 次幂都为 1
if (n == 0)
return 1;
// 基本情况:如果指数 n 为 1,x 的 1 次幂就是 x 本身
if (n == 1)
return x;
// 基本情况:如果指数 n 为 -1,x 的 -1 次幂就是 1/x
if (n == -1)
return 1 / x;
// 递归计算 x 的 n/2 次幂
double a = myPow(x, n / 2);
// 递归计算 x 的 n%2 次幂,实际上是为了处理幂的奇偶性
double b = myPow(x, n % 2);
return a * a * b;
}
}