87.日期

#include <stdio.h>

#define ISYEAP(x) x%100!=0&&x%4==0||x%400==0?1:0

int dayOfMonth[13][2]={

0,0,

31,31,

28,29,

31,31,

30,30,

31,31,

30,30,

31,31,

31,31,

30,30,

31,31,

30,30,

31,31

};

struct Date{

int Day;

int Month;

int Year;

void nextDay(){

Day++;

if(Day>dayOfMonth[Month][ISYEAP(Year)]){

Day=1;

Month++;

if(Month>12){

Month=1;

Year++;

}

}

}

};

int buf[2101][13][32];

int Abs(int x){

return x<0?-x:x;

}

int main () {

Date tmp;

int cnt=0;

tmp.Day=1;

tmp.Month=1;

tmp.Year=0;

while(tmp.Year!=2101){

buf[tmp.Year][tmp.Month][tmp.Day]=cnt;

tmp.nextDay();

cnt++;

}

int d1,d2;

int m1,m2;

int y1,y2;

int n;

scanf("%d",&n);

while(n--!=0){

while(scanf("%d:%d:%d",&y1,&m1,&d1)!=EOF){

printf("%d\n",Abs(buf[y1][m1][d1]-buf[y1][1][1])+1);

}

}

return 0;

}


不难,王道机试指南上有类似的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。