【算法速记】求x的n次方

220 阅读1分钟

1.普通思路 On

function function1(x, n) {
  let result = 1;  // 注意 任何数的0次方等于1
  for (let i = 0; i < n; i++) {
    result = result * x;
  }
  return result;
}

2.递归思路 On

function function2(x,  n) {
    if (n == 0) {
        return 1; // return 1 同样是因为0次方是等于1的
    }
    return function2(x, n - 1) * x;
}

3.递归思路 O(logn)

int function4(x, n) {
    if (n == 0) {
        return 1;
    }
    let t = function4(x, n / 2);
    if (n % 2 == 1) {
        return t * t * x;
    }
    return t * t;
}

解析参考