상세 컨텐츠

본문 제목

Javascript 재귀 함수문제(1) - isOdd

Programming Language/JavaScript

by Yongari 2022. 12. 11. 10:49

본문

 

문제

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

입력

인자  : number 타입의 정수

출력

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

 

입출력 예시

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

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

 

 

풀이코드 설명

function isOdd(num) {
  // 입력받은 num이 0이면 false 반환
  if (num === 0) {
    return false;
  // 입력받은 num이 1이면 true
  } else if (num === 1) {
    return true;
  }
  //num이 음수일 경우 - 붙이기
  if (num < 0) {
    return isOdd(-num);
  } 
  // isOdd를 재귀로 계속해서 호출
  return isOdd(num - 2);
}


//첫 작성 코드 지저분해서 보기가 힘들다.
function isOdd(num) {
//   // num을 입력받는다. 
//   // num이 홀수인지 리턴한다. 데이터 타입은 boolean으로 리턴 
//   // 재귀를 사용해야하고 반복문과 나머지 연산자는 사용할 수 없다. 
//   // 짝수는 2로 나눈 나머지 0 홀수는 2로 나눈 나머지가 1
//   if (num === 0  ){
//     return false; 
//   }
//   else if (num === -2){
//     return false; 
//   }
//   else if (num === 1 ){
//     return true; 
//   }
//   else if (num === -1){
//     return true; 
//   }

//   if (num >= 0){
//     return isOdd(num - 2);
//   }
//   else {
//     return isOdd(num + 2);
//   }
  

// }

관련글 더보기