본문 바로가기

자바스크립트

자바스크립트로 거듭제곱 하기 (공부)

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