蓝桥——星系炸弹
在X星系的广袤空间中漂浮着许多X星人造“炸弹”,每个炸弹都可以设定多少天之后爆炸。比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
输入
输入为炸弹放置日期(格式为 yyyy-mm-dd)及定时天数(整型)。
输出
输出为爆炸的准确日期(格式为 yyyy-mm-dd);请严格按照格式书写,不能出现其它文字或符号。
注意:年为4位整数,月为两位整数,日为两位整数,例如2016年4月7日表示为:2016-04-07
样例输入
1999-9-9 800
样例输出
2001-11-17
题目思路并不复杂,直接上代码:
#include<stdio.h>
#include<string.h>
int judgeyear(int year);
int main()
{
int year,mouth,day,num;
scanf("%d-%d-%d",&year,&mouth,&day);
scanf("%d",&num);
while(num!=0)
{
while(1)
{
if(mouth>2)
{
if(judgeyear(year+1))
{
if(num>=366)
{
num-=366;
year++;
}
else break;
}
else
{
if(num>=365)
{
num-=365;
year++;
}
else break;
}
}
else
{
if(judgeyear(year))
{
if(num>=366)
{
num-=366;
year++;
}
else break;
}
else
{
if(num>=365)
{
num-=365;
year++;
}
else break;
}
}
}
day++;
num--;
if(mouth==1||mouth==3||mouth==5||mouth==7||mouth==8||mouth==10)
{
if(day>31)
{
mouth++;
day=1;
}
}
else if(mouth==2)
{
if(judgeyear(year))
{
if(day>29)
{
mouth++;
day=1;
}
}
else
{
if(day>28)
{
mouth++;
day=1;
}
}
}
else if(mouth==12)
{
if(day>31)
{
year++;
mouth=1;
day=1;
}
}
else
{
if(day>30)
{
mouth++;
day=1;
}
}
}
if(mouth<10&&day>=10)
printf("%d-0%d-%d",year,mouth,day);
else if(mouth>=10&&day<10)
printf("%d-%d-0%d",year,mouth,day);
else if(mouth<10&&day<10)
printf("%d-0%d-0%d",year,mouth,day);
else
printf("%d-%d-%d",year,mouth,day);
return 0;
}
int judgeyear(int year)
{
if(year%400==0||year%4==0&&year%100!=0)
return 1;
else
return 0;
}