返回轨道
算法 · 2026-05-14 · 70 阅读

P10 数值的 n 次方

算法 70 阅读

信号摘要

难度:Medium · 时长:03:23 · leetcode 50 · lintcode 428

P10 数值的 n 次方

未对外公开播放权限
点击查看说明

描述

这个题目说的是,你要实现一个函数,用它来计算浮点数的 n 次方。

比如说,给你 2 和 11,你要计算出 2 的 11 次方的结果:

f(2, 11) = 211

代码

public class AlgoCasts {

  // Time: O(n), Space: O(1)
  public double pow(double x, int n) {
    double result = 1;
    long N = Math.abs((long)n);

    for (int i = 0; i < N; ++i)
      result *= x;
    return n < 0 ? 1/result : result;
  }

  // Time: O(log(n)), Space: O(1)
  public double powFast(double x, int n) {
    double result = 1;
    long N = Math.abs((long)n);

    while (N != 0) {
      if ((N & 1) == 1) result *= x;
      x *= x;
      N >>= 1;
    }
    return n < 0 ? 1/result : result;
  }

}

📡 通讯频道