题目:
在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
代码:
public class Main {
static int[] a = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
public static void main(String[] args) {
int year = 2014;
int mounth = 11;
int day = 9;
int n = 0;// 记录天数,初始化为0
int c = 1000;
String m = "";
String d = "";
while (true) {
operTwo(year);// 判断是否为闰年
while (mounth <= 12) {// 遍历月
while (day <= a[mounth]) {// 遍历日
if (n == c) {// n加到定时天数
if (mounth < 10) {// 不足两位补0
m = "0" + mounth;
} else {
m = mounth + "";
}
if (day < 10) {// 不足两位补0
d = "0" + day;
} else {
d = day + "";
}
System.out.println(year + "-" + m + "-" + d);
return;
}
day++;// n随着day加
n++;
}
mounth++;// 月份增加
day = 1;// 每遍历完一月,日期就从1号开始加
}
if (mounth == 13) {// 遍历完一年,月份从1开始
mounth = 1;
}
// if(mounth>12){
// mounth = mounth%12;
// }
year++;// 年增加
}
}
// 判断闰年
static void operTwo(int year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
a[2] = 29;
} else {
a[2] = 28;
}
}
}