这是一道关于时间的倒退的题目,但是是年月日,而昨晚做了一道也是关于时间的倒退,但是是时分秒的题目,重在分析,
#include<stdio.h>
int runnian(int m)
{
if(m%4==0&&m%100!=0||m%400==0)
return 1;
else
return 0;
}
int main()
{
int t,n,i,year,day,month,r;
int a[2][13]= {0,31,28,31,30,31,30,31,31,30,31,30,31,
0,31,29,31,30,31,30,31,31,30,31,30,31
};
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
year=2013;
day=24;
month=3;
day+=n;
while(1)
{
r=runnian(year);
if(day>a[r][month])
{
day-=a[r][month];
month+=1;
if(month>12)
{
month-=12;
year+=1;
}
}
else
break;
}
printf("%04d/%02d/%02d",year,month,day);
year=2013;
day=24;
month=3;
day-=n;
while(1)
{
r=runnian(year);
if(day<1)//
{
month-=1;//
if(month<1)//
{
month=12//;
year-=1;//
}
day+=a[r][month];//这几行要特别注意,是往后退,值得注意,只要举出一个数,模拟一下就可以了!应该就能写出来了!
}
else
break;
}
printf(" %04d/%02d/%02d\n",year,month,day);
//return 0;
}
return 0;
}