SGU 115

水题,调用蔡勒公式即可解决。(由于年份限定为2001,所以模拟似也可以解决)

注意判定数据的合法性。

另外,根据题目要求,出现负数或零的数据也是符合题目条件的,但似乎SGU并没有这么做- -

#include "stdio.h"
int main(){
	int maxday[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
	int Y=1,C=20;
	int M,D,day;
	scanf("%d%d",&D,&M);
	if(M>=13){
		printf("Impossible");
	}
	else{
		if(D>maxday[M]){
			printf("Impossible");
		}
		else{
			if((D<=0)||(M<=0)){
				printf("Impossible");
			}
			else{
				if(M<=2){
					Y--;
					M+=12;
				}
				day=((Y+Y/4+C/4-2*C+(13*(M+1)/5)+D-1)+7000000)%7;
				if(day==0)day=7;
				printf("%d",day);
			}
		}
	}
	return 0;
}
	

 

posted on 2014-07-31 13:13  且听~晓风残月  阅读(116)  评论(0)    收藏  举报

导航