Algorism

조건문(if, else)를 이용한 윤년 판별기

자라나라나무나무나 2022. 7. 4. 23:47

자연수를 입력으로 받아 두개의 조건 중 하나라도 윤년이면 true, 아니면 false

윤년이란?

- 4의 배수이고 100의 배수가 아닐 때

- 400의 배수일 때

 

오답

function answer(year) {

    let result;

    if(year/4 == 0 && year/100 != 0) {
        if(year/400 == 0) {
            result = true;
        } 
        else {
            result = false;
        }
    }
    return result;
};

let input = [4,100,124,247,400];

for(let i = 0; i < input.length; i++) {
    console.log(`#${i + 1} ${answer(input[i])}`);
}

나머지를 이용하여 푸려는 생각이 같았지만 %를 이용했으면 답이 나왔을 것 같다.

문제를 잘 이해하지 못하여 두가지 중 하나라도 참이면 윤년이라고 생각하지 못해서 undefined가 나왔다.


정답

function answer(year) {

    let result;

    if(year%4 == 0 && year%100 != 0) {
        result = true;
    } else if(year%400 == 0) {
        result = true;
    } else {
        result = false;
    }
    return result;
};

let input = [4,100,124,247,400];

for(let i = 0; i < input.length; i++) {
    console.log(`#${i + 1} ${answer(input[i])}`);
}