第二题
题目
星系炸弹在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。
请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。比如:2015-02-19
请严格按照格式书写。不能出现其它文字或符号。
思路分析
首先要判断闰年啊,主程序一遍for循环1000天,每次天数++的时候,同步更新日子、月份、年份。
代码
#include <iostream> #include<cstdio> using namespace std; bool IsLeapYear(int year){//判断是否是闰年 if((year%4==0)&&(year%100!=0)||(year%400==0)){ return true; } else return false; } int main(int argc, char** argv) { int monthDay[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int year,month,day;//输入的起始年月日 int ndays;//增加的天数 while(cin>>year>>month>>day){//2014 11 9 cin>>ndays;//1000 for(int i=0;i<ndays;i++){ day++; if(day>monthDay[month-1]){//若日数大于当前月份的日数 day=1; month++; if(month>12){ month=1; year++; if(IsLeapYear(year)){//若是闰年 monthDay[1]=29;//闰年2月份为29天 } else{ monthDay[1]=28; } } } } printf("%d-%d-%d",year,month,day); } return 0; }