题目如下
在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,a年b月c日放置,定时为n天,请你计算它爆炸的准确日期。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int year,month,day,n,sum=0,x=0,y=0;
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
while(scanf("%d %d %d %d",&year,&month,&day,&n)!=EOF)
{
sum=sum-day;
if((year%4==0&&year%100!=0)||year%400==0)
a[2]=29;
else
a[2]=28;
for(int i=month;i<=12;i++)
{
sum=sum+a[i];
if(sum>=n)
{
if(a[i]-sum+n<10&&i<10)
printf("%d-0%d-0%d\n",year,i,a[i]-sum+n);
else if(a[i]-sum+n<10&&i>=10)
printf("%d-%d-0%d\n",year,i,a[i]-sum+n);
else if(a[i]-sum+n>=10&&i>=10)
printf("%d-%d-%d\n",year,i,a[i]-sum+n);
else if(a[i]-sum+n>=10&&i<10)
printf("%d-0%d-%d\n",year,i,a[i]-sum+n);
sum=0;
break;
}
if(i==12)
x=1;
}
if(x==1)
{
x=0;
year++;
for(;;year++)
{
if((year%4==0&&year%100!=0)||year%400==0)
a[2]=29;
else
a[2]=28;
for(int i=1;i<=12;i++)
{
sum=sum+a[i];
if(sum>=n)
{
if(a[i]-sum+n<10&&i<10)
printf("%d-0%d-0%d\n",year,i,a[i]-sum+n);
else if(a[i]-sum+n<10&&i>=10)
printf("%d-%d-0%d\n",year,i,a[i]-sum+n);
else if(a[i]-sum+n>=10&&i>=10)
printf("%d-%d-%d\n",year,i,a[i]-sum+n);
else if(a[i]-sum+n>=10&&i<10)
printf("%d-0%d-%d\n",year,i,a[i]-sum+n);
y=1;
sum=0;
break;
}
}
if(y==1)
{
y=0;
break;
}
}
}
}
}