首页 > 代码库 > SGU 115

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;}