본문 바로가기
Co-Study/JS 스터디 2021 ✔️

[JS 스터디 1기] - power 함수 구현 코드

by Aaron-Kim 2021. 12. 12.
// power 함수 구현

// 시간 복잡도: O(n)
// 공간 복잡도: O(1)
// b: base (밑), e: exponent (지수)
function powerIterative(b, e) {
  let result = 1;
  for (let i = 0; i < e; i = i + 1) {
    result *= b;
  }
  return result;
}

// 시간 복잡도: O(n)
// 공간 복잡도: O(1), 재귀 호출 스택 고려 -> O(n)
function powerRecursive01(b, e) {
  if (e === 0) return 1;
  return b * powerRecursive01(b, e - 1);
}

// 시간 복잡도: O(log n)
// 공간 복잡도: O(1), 재귀 호출 스택 고려 -> O(log n)
function powerRecursive02(b, e) {
  if (e === 0) return 1;
  if (e % 2 === 0) {
    let numberSplit = b ** (e / 2);
    return numberSplit ** 2;
  } else {
    return b * powerRecursive02(b, e - 1);
  }
}

console.log(powerIterative(5, 3));
console.log(powerRecursive01(5, 3));
console.log(powerRecursive02(5, 3));

// console.log(Math.pow(5, 3));
// console.log(5 ** 3);

 

반응형

댓글