2017 바 이 두 스타 첫 경기: A - 1005. 오늘 저녁 은 언제 입 니까?

1966 단어 각종 문제
오늘 저녁 
 Accepts: 1345
 
 Submissions: 5533
 Time Limit: 2000/1000 MS (Java/Others)
 
 Memory Limit: 32768/32768 K (Java/Others)
Problem Description
오늘 은 2017 년 8 월 6 일 이 며 음력 은 6 월 15 일이 다.
소 도 는 홀로 난간 에 기대 어 둥 근 달 을 바라 보 며 '오늘 저녁, 이 양 인 을 만 나 자' 는 외 로 운 감개 를 보 냈 다.
우울 한 마음 을 달 래 기 위해 수학 문 제 를 생각 하기 로 했다. 앞으로 몇 년 동안 의 같은 날 은 오늘 의 요일 과 같 습 니까?예 를 들 어 오늘 은 8 월 6 일, 일요일 이다.다음 도 일요일 인 8 월 6 일 은 2023 년 에 발생 한다.
팁: 양력 에 서 는 4 로 나 눌 수 있 지만 100 으로 나 눌 수 없 거나 400 으로 나 눌 수 있 는 해 가 윤년 이다.
Input
첫 번 째 행동 T 는 입력 데이터 그룹 수 를 나타 낸다.
각 그룹의 데 이 터 는 하나의 날 짜 를 포함 하고 있 으 며, 형식 은 YYY - MM - DD 이다.
1 ≤ T ≤ 10000
YYYY ≥ 2017
날 짜 는 반드시 합 법 적 인 날짜 이다.
Output
각 그룹의 데이터 출력 답안 연도 에 대해 문 제 는 답안 이 네 자릿수 를 넘 지 않도록 보증한다.
Sample Input
3
2017-08-06
2017-08-07
2018-01-01

Sample Output
2023
2023
2024

일 년 일 년 을 더 하면 일수 차 가 7 의 배수 가 된다.
특수 상황 주의: 날 짜 는 2 월 29 일 이 니 특 판 하면 됩 니 다.
두 그룹의 강력 한 데이터:
2016-2-29
2096-2-29
답:
2044  2108
#include
int main(void)
{
	int T, y, m, d, now, sum;
	scanf("%d", &T);
	while(T--)
	{
		scanf("%d-%d-%d", &y, &m, &d);
		if(m==2 && d==29)
		{
			now = y;
			sum = 0;
			while(sum==0 || sum%7!=0)
			{
				now += 4;
				sum += 1461;
				if(now%100==0 && now%400!=0)
				{
					now += 4;
					sum += 1460;
				}
			}
			printf("%d
", now); } else if(m<=2) { sum = 0; now = y; while(sum==0 || sum%7!=0) { if(now%4==0 && now%100!=0 || now%400==0) sum += 366; else sum += 365; now++; } printf("%d
", now); } else { sum = 0; now = y; while(sum==0 || sum%7!=0) { now++; if(now%4==0 && now%100!=0 || now%400==0) sum += 366; else sum += 365; } printf("%d
", now); } } return 0; }

좋은 웹페이지 즐겨찾기