/* //这是直接计算
#include <iostream>
#define isyear(x) (x%100!=0&&x%4==0||x%400==0?1:0)
using namespace std;
int md1[]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int md2[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main()
{
int y,m,d;
while(cin>>y>>m>>d){
int day=0;
if(isyear(y)){
for(int i=1;i<m;++i){
day+=md1[i];
}
day+=d;
}else{
for(int i=1;i<m;++i){
day+=md2[i];
}
day+=d;
}
cout<<day<<endl;
}
return 0;
}
*/
#include<iostream>
using namespace std;
#include<cstdio>
#define isyear(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][isyear(Year)]){
Day=1;
++Month;
if(Month>12){
Month=1;
++Year;
}
}
}
};
int buf[3001][13][32];
int main(){
int y,m,d;
Date tmp;
int cnt=0;
tmp.Year=0;
tmp.Month=1;
tmp.Day=1;
while(tmp.Year!=3001){
buf[tmp.Year][tmp.Month][tmp.Day]=cnt;
++cnt;
tmp.nextDay();
}
while(cin>>y>>m>>d){
cout<<buf[y][m][d]-buf[y-1][12][31]<<endl;
}
}
九度oj 1070 今年的第几天?
最新推荐文章于 2020-10-13 16:43:00 发布