问题 : 追忆
题目描述
“别人总说我瓜,其实我一点也不瓜,大多数时候我都机智的一批“
现在是阳历2018/8/7,宝儿姐想起自己参加ACM整整1000天了。她想知道她刚入坑是什么时间。那么问题来了,请帮宝儿姐追忆一下某个时间之前n天是什么时间吧。
输入
多实例输入以EOF结束
每行四个数字year month day n用空格隔分别代表 当前年月日,以及查询天数。
输出
输出一个日期,年月日用空格隔开。
样例输入
2018 08 07 1 2018 08 07 8 2018 08 07 1000
样例输出
2018 08 06 2018 07 30 2015 11 11
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int run(int y)
{
if((y%4==0)&&(y%100!=0||y%400==0))
return 1;
return 0;
}
int main()
{
int n,i,j,y=2013,d=24,m=3,D,K,a[2][20]= {{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}};
while(~scanf("%04d %02d %02d",&y,&m,&d))
{
scanf("%d",&K);
D=K;
while(d-D<=0)
{
if(m>1)
{
m--;
d+=a[run(y)][m];
}
else
{
y--;
m+=12;
d+=a[run(y)][m-1];
m--;
}
}
d-=D;
printf("%04d %02d %02d\n",y,m,d);
}
return 0;
}