analogcoding

algorithm 연습3 본문

Study JS for me/Algorithm

algorithm 연습3

be well 2019. 4. 26. 18:05

문제. 인자로 받는 문자열의 숫자가 2의 제곱수면 true를 아닐 경우 false를 리턴.

 

Ex) input : 2 , 4 , 8 , 16 , 32 , 64 , 128 ...   =>  output : true

       input : 1 , 22 , 27 , 222 ...    =>  output : false

 

해결방안.

 

1. input값을 숫자로 받기.

2. for문을 사용해서 input을 2의 i ( i는 input보다 작게 ) 제곱과 비교.

3. Boolean 값 리턴.

 

iput을 숫자로 변환하고 i 번 제곱할 i 를 설정해준다.

var powerOfTwo = function(str) {
  var num = Number(str);    
  // 숫자로 변환
    for(let i = 1 ; i < num ; i++){
  // input이 num의 범위를 넘어가지 않으므로 조건을 i < num으로 설정
     if(num === Math.pow(2,i)){
   return true;
 }  
 }
 return false;
}

* Math.pow() 

   ㄴ Math.pow( base , exponent ) 함수는 base exponent번 곱한 결과를 반환한다.

 

Math.pew(2,num) : 2를 0 ~ input만큼 곱한 수와 input을 비교해서 같으면 2의 제곱수이므로 true , 아니면 false를 리턴한다.

 

결과확인

'Study JS for me > Algorithm' 카테고리의 다른 글

algorithm 연습6  (0) 2019.04.28
algorithm 연습5  (0) 2019.04.27
algorithm 연습4  (0) 2019.04.27
algorithm 연습2  (0) 2019.04.26
algorithm 연습  (0) 2019.04.26
Comments