728x90
거듭제곱을 하는 방법에 대해 알아보았다.
두 가지 방법이 있었는데
1. Math.pow()
2.함수로 만드는 방법
1. Math.pow()는
자바스크립트의 메서드를 이용하는 방법으로
문법은
Math.pow(base, exponent) // base에는 거듭제곱 할 수를, exponent에는 얼마를 거듭제곱할지를 적는다.
예를 들어
console.log(Math.pow(2,4))
// 이것은 2를 4제곱 한다는 말이고, 결과는 16이 된다
음수의 거듭제곱이 있는데 그건 mdn에게 맡기도록 한다.
2.함수로 만드는 방법은
재귀를 이용한 방법으로 함수 안에서 본인을 호출시켜서 만드는 방법이다
function pow(x, n) {
if (n == 1) {
return x;
} else {
return x * pow(x, n - 1);
}
}
alert( pow(2, 4) ); // 16
헷갈릴 수도 있는데
풀어써 보면
pow(2,4) 라고 하면
x= 2 , n= 4 이기 때문에
풀어써보면
pow(2,4) = 2 * pow(2, 3)이 실행되겠고 여기서 또 pow(2,3)함수가 실행되어
pow(2,3) = 2 * pow(2, 2)가 실행되고, 여기서 pow(2, 2)가 실행되어
pow(2,2) = 2 * pow(2, 1) 이 실행된다. 이제 n이 1이 되었으니 pow(2,1) 은 2가 된다
pow(2,1)을 2로 대입해서 거꾸로 타고 올라가면
pow(2,2) = 2 * pow(2, 1) 에서 pow(2, 1)가 2이기 때문에 2*2= 4가 되고
pow(2,3) = 2 * pow(2, 2) 에서 pow(2, 2)가 4가되었기 때문에 2*4= 8이되고
pow(2,4) = 2 * pow(2, 3) 에서 pow(2, 3)가 8이 되었기 때문에 2*8= 16이 된다
결국 pow(2,4) 함수는 16이라는 결괏값이 나오게 되는 것이다.
어렵다...
그냥 안 외워지면 외우자, 외우지 못하면 언젠가 찾아서 복붙 하자.
728x90
'자바스크립트' 카테고리의 다른 글
JavaScript에서 객체 복사에 JSON 을 사용하는 시대는 끝났다! (0) | 2023.04.14 |
---|---|
new Date()로 현재 날짜 시간을 취득 해 보자! (0) | 2023.04.14 |
피셔에이츠셔플, 랜덤 숫자 뽑기 (0) | 2023.03.23 |
배열의 값을 더해야 할 때 (0) | 2023.03.15 |
자바스크립트 날짜바꾸기 (0) | 2023.03.14 |