알고리즘 [재귀] isOdd

Kyoorim LEE·2022년 11월 17일
0

알고리즘TIL

목록 보기
21/40

문제

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

입력

인자 1 : num

number 타입의 정수

출력

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

주의 사항

함수 isOdd는 재귀함수의 형태로 작성합니다.
반복문(for, while) 사용은 금지됩니다.
나눗셈(/), 나머지(%) 연산자 사용은 금지됩니다.
0은 짝수로 간주합니다.

입출력 예시

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

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

문제풀이

function isOdd(num) {
  // TODO: 여기에 코드를 작성합니다.
  // isOdd(0) -> 짝수
  // isOdd(1) -> 홀수
  // isOdd(2) : 2 - 2 => isOdd(0)
  // isOdd(3) : 3 - 2 => isOdd(1)
  // isOdd(4) : 4 - 2 = 2 - 2 = 0 => isOdd(2) => isOdd(0)
  // isOdd(5) : 5 - 2 = 3 - 2 = 1 => isOdd(3) => isOdd(1)
if(num ===0) return false;
else if(num === 1) return true;
else if(num < 0) return isOdd(-num)
return isOdd(num-2)
}

한 줄 평

  • 나눗셈과 나머지 연산자를 쓸 수 없으므로 num에서 계속 2를 빼서 모든 결과를 isOdd(0) || isOdd(1)로 수렴하게 만든다
  • isOdd(0) 인 경우는 false
  • isOdd(1) 인 경우는 true
profile
oneThing

0개의 댓글