蓝桥杯历届-星系炸弹
星系炸弹
在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。
请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。比如:2015-02-19
请严格按照格式书写。不能出现其它文字或符号。
#include<cstdio>
#include<iostream>
using namespace std;
int a1[] = {31,28,31,30,31,30,31,31,30,31,30,31}; // 平年
int a2[] = {31,29,31,30,31,30,31,31,30,31,30,31}; // 闰年
bool isP(int y) {
if ((y%400 == 0)||(y%4 == 0 && y%100 != 0)) return true;
return false;
}
int main() {
int sum = 52;
int y, m, d;
bool f = false;
for (y = 2015; y < 2222; y++) {
if (isP(y)) {
for (int i = 0; i < 12; i++) {
for (int k = 1; k <= a1[i]; k++) {
if (sum == 1000) {
m = i+1;
d = k;
f = true;
break;
}
sum++;
}
if (f) break;
}
} else {
for (int i = 0; i < 12; i++) {
for (int k = 1; k <= a2[i]; k++) {
if (sum == 1000) {
m = i+1;
d = k;
f = true;
break;
}
sum++;
}
if (f) break;
}
}
if (f) break;
}
printf("y = %d, m = %d, d = %d\n",y, m, d);
return 0;
}
“`
答案是2017-08-05