코플릿 / 반복문(홀수찾기)

support·2021년 9월 1일
0

코딩테스트

목록 보기
10/11
post-thumbnail

문제

수를 입력받아 홀수인지 여부를 리턴해야 합니다.

입력

인자 1 : num

  • number 타입의 정수

출력

  • boolean 타입을 리턴해야 합니다.

주의 사항

  • 반복문(while)문을 사용해야 합니다.
  • for문 사용은 금지됩니다.
  • 나눗셈(/), 나머지(%) 연산자 사용은 금지됩니다.
  • 0은 짝수로 간주합니다.

입출력 예시

let output = Odd(17);
console.log(output); // --> true

output = Odd(-8);
console.log(output); // --> false

해설


function Odd(num) {
  if (num < 0){
     num = -num;
  }
  while(num >= 0){
    if(num === 0){
      return false;
    }else if(num === 1){
      return true;
    }
    num =  num -2
  }
}

나눗셈과 나머지 연산자를 사용하지 않고 홀수를 찾아내는 생각을 하는게 어려웠다
숫자 -2 를 계속 연산했을때 1이 나오면 홀수 0이 나오면 짝수다
(단 조건은 숫자가 양수 일때 까지)
9-2=7-2=5-2=3-2=1 / 8-2=6-2=4-2=2-2=0

그렇다면 숫자가 0보다 작게 들어오면 숫자를 양수로 바꿔주면
양수로 바꿔서 계산 해줄 수 있다
숫자는 한번 반복 될때마다 -2를 계산해주고
숫자가 0이면 짝수로 false를 리턴해주고 1이되면
홀수이므로 true를 리턴해주면 된다

그리고 num = num -2 를 계산해주는 식도 위치를 잘 넣어야 하는데
위쪽에 넣게되면 숫자가 0이 들어왔을때 -2가 되어서 맞지 않는다

0개의 댓글

관련 채용 정보