题目描述
在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。
请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。比如:2015-02-19
请严格按照格式书写。不能出现其它文字或符号。
分析
挺简单的一道题,用我的基本的数学知识也能用手算出来是 2017-08-05 ,下面是程序练习:
#include<iostream>
using namespace std;
int mon[13]={
31,28,31,30,31,30,31,31,30,31,30,31};
bool leapy(int y){
//判断是否是闰年,返回 bool 值
if(y%4==0 && y%100!=0 || y%400==0)
return true;
return false;
}
int main(){
bool isleapy=false;
int y=2014,m=11,d=9,n=1000;
for(int i=1;i<=n;i++){
//学会这种一天一天前进判断的思想
d++;
if(m==2){
if(isleapy){
if(d>29){
m++;
d=1;
}
}
else{
if(d>28){
m++;
d=1;
}
}
}
else if(d>mon[m-1]){
m++;
d=1;
}
if(m>12){
y++;
m=1;
isleapy=leapy(y);
}
}
printf("%d-%02d-%02d\n",y,m,d);//不足两位时左侧补 0 补齐
return 0;
}