用C++类的构造函数自动完成
#include<iostream>
using namespace std;
class Date{
public:
Date(int year,int day)
:_day(0),_month(1),_year(year)
{
int tmp=day;
isleapyear=(!(_year % 4) && _year % 100) || !(_year % 400);
for(int mday=getmonthday(_month);tmp>mday;mday=getmonthday(_month)){
_month++;
if(_month==13){
_year++;
_month=1;
}
tmp-=mday;
}
_day=tmp;
printf("%04d-%02d-%02d\n", _year, _month, _day);
}
private:
int getmonthday(int month){
static int monthdayarr[]={31,28,31,30,31,30,31,31,30,31,30,31};
return monthdayarr[month-1]+(month==2&&isleapyear?1:0);
}
bool isleapyear;
int _year;
int _month;
int _day;
};
int main(){
int year,day;
while(~scanf("%d %d",&year,&day)){
Date tmp(year,day);
}
}
看着代码多 其实3ms 超过73%
京公网安备 11010502036488号