728x90
반응형
[19번 문제]
다음은 달력에 관한 몇 가지 일반적인 정보입니다 (필요한 경우 좀 더 연구를 해 보셔도 좋습니다).
- 1900년 1월 1일은 월요일이다.
- 4월, 6월, 9월, 11월은 30일까지 있고, 1월, 3월, 5월, 7월, 8월, 10월, 12월은 31일까지 있다.
- 2월은 28일이지만, 윤년에는 29일까지 있다.
- 윤년은 연도를 4로 나누어 떨어지는 해를 말한다. 하지만 400으로 나누어 떨어지지 않는 매 100년째는 윤년이 아니며, 400으로 나누어 떨어지면 윤년이다
20세기 (1901년 1월 1일 ~ 2000년 12월 31일) 에서, 매월 1일이 일요일인 경우는 총 몇 번입니까?
[코드]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #include "stdafx.h" #include <stdlib.h> #include <iostream> using namespace::std; int ans = 0; int main() { int d=1; int month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; for (int y = 1900; y <= 2000; y++) { if ((y % 4 == 0) && ((y % 100 != 0 || y % 400 == 0))) month[1] = 29; else month[1] = 28; for (int m = 0; m < 12; m++) { if (d == 0 && y>1900) ans++; d = (month[m] + d) % 7; } } cout << endl << ans << endl; system("pause"); return 0; } | cs |
728x90
반응형
'Solution > Project Euler' 카테고리의 다른 글
[21/C++] 10000 이하 모든 친화수(우애수)의 합은? (0) | 2018.05.26 |
---|---|
[20/C++] 100! 의 자리수를 모두 더하면? (0) | 2018.05.26 |
[18/C++] 삼각형을 따라 내려가면서 합이 최대가 되는 경로 찾기 (0) | 2018.05.26 |
[17/C++] 1부터 1000까지 영어로 썼을 때 사용된 글자의 개수는? (0) | 2018.05.25 |
[16/C++] 2^1000의 각 자리수를 모두 더하면? (0) | 2018.05.25 |