카테고리 없음

[백준] 2753번 윤년 [C++]

기술1 2024. 3. 6. 16:50

첫번째 풀이(틀림)

#include <iostream>



int main()
{
	using namespace std;

	int year = 0;

	cin >> year;

	if ((((year / 4) == 0) && (year / 100 != 0)) || ((year / 400) == 0))
		cout << "1" << endl;
	else
		cout << "0" << endl;


	return 0;
}

and 와 or을 if문을 통해 풀려고 했습니다. 하지만 계속해서 틀렸다고 나옵니다. 

 

두번째 풀이

#include <iostream>



int main()
{
	using namespace std;

	int year = 0;

	cin >> year;

	if ((((year % 4) == 0) && (year % 100 != 0)) || ((year % 400) == 0))
		cout << "1" << endl;
	else
		cout << "0" << endl;


	return 0;
}

너무 간단한 실수라서 블로그에 적기도 부끄러울 정도였는데요. "/" 이것은 나머지를 구하는 연산자가 아닌 몫을 구하는 연산자이기 때문에 만약 윤년이 2012라고하면 2012 / 4 를 하면 0이 나오는 것이 아닌 다른 숫자가 나오게 됩니다.

 

나머지를 구할 때는 %를 써줘야 합니다. 

이것만 바꿔주니 정답이 되었습니다.