오늘 저녁

2576 단어 ACM수론
오늘 저녁
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4281    Accepted Submission(s): 1287  
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
제목:
       YY-MM-DD,    X,          ( ,   ,    X)。 

  366 ,366/7=52,366%7=2。 52   2 

  365 ,365/7=52,365%7=1。 52   1 

   2017 8 6 ,      ,        8 6           。

          NEWY,      YY。 YY NEWY             %7=0,     NEWY。

             2 29  ,             %7=0,  NEWY         。
#include
using namespace std;
int year,month,day;
int sign(int year)
{
	if(year%400==0||(year%4==0&&year%100!=0))
	{
		return 1;
	}
	return 0;
}
int panduan(int x)
{
	int sum=0,i;
	for(i=x;;i++)
	{
		if(sign(i)==1)
		{
			sum+=366;
			if(sum%7==0)
			{
				break;
			}
		}
		else
		{
			sum+=365;
			if(sum%7==0)
			{
				break;
			}
		}
	//	printf("%d
",sum); } return i+1; } int panduan2(int year) { int sum=0,i; for(i=year+1;;i++) { if(sign(i)==1) { sum+=366; if(sum%7==0) { break; } } else { sum+=365; if(sum%7==0) { break; } } } return i; } int days(int a) { if(a%4==0&&a%100!=0||a%400==0) return 366; else return 365; } int main() { int n; scanf("%d",&n); while(n--) { char a,b; scanf("%d-%d-%d",&year,&month,&day); if(month==2&&day==29) { int sum=0; for(int i=year+1;; i++) { sum+=days(i); if(sum%7==0&&days(i)==366) { printf("%d
",i); break; } } } else if(month>2) { printf("%d
",panduan2(year)); // cout<

좋은 웹페이지 즐겨찾기