// 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);
반응형
'Co-Study > JS 스터디 2021 ✔️' 카테고리의 다른 글
[JS 스터디 1기] - fibonacci 함수 구현 코드 (0) | 2021.12.19 |
---|---|
[JS 스터디 1기] - factorial 함수 구현 코드 (0) | 2021.12.19 |
[JS 스터디 1기] - 두 번째 미팅 (0) | 2021.12.19 |
[JS 스터디 1기] - 첫 정규 미팅 (0) | 2021.12.12 |
[JS 스터디 1기] - OT 및 계획서 (0) | 2021.12.06 |
댓글