【问题描述】
2022 年 2 月 22 日 22:20 是一个很有意义的时间,年份为 2022,由 3 个 2 和 1 个 0 组
成,如果将月和日写成 4 位,为 0222,也是由 3 个 2 和 1 个 0 组 成,如果将时间中的时和
分写成 4 位,还是由 3 个 2 和 1 个 0 组成。
小蓝对这样的时间很感兴趣,他还找到了其它类似的例子,比如 111 年 10 月 11 日
01:11,2202 年 2 月 22 日 22:02 等等。
请问,总共有多少个时间是这种年份写成 4 位、月日写成 4 位、时间写成 4 位后由 3
个一种数字和 1 个另一种数字组成。注意 1111 年 11 月 11 日 11:11 不算,因为它里面没有
两种数字。
【答案提交】文章来源:https://www.toymoban.com/news/detail-629449.html
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。文章来源地址https://www.toymoban.com/news/detail-629449.html
package a.a;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
public class LanQiao13B {
static SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmm");
static void fun(int i, int j, List<String> list) {
list.add(i + "" + i + "" + i + "" + j);
list.add(i + "" + i + "" + j + "" + i);
list.add(i + "" + j + "" + i + "" + i);
list.add(j + "" + i + "" + i + "" + i);
}
static void fun1(List<String> list, List<String> resultList) {
// 因为是由 年 月日 时分 三个组成,所以直接做了3个for循环用来拼接
for (int m = 0; m < list.size(); m++) {
for (int n = 0; n < list.size(); n++) {
for (int p = 0; p < list.size(); p++) {
// 这里借用SimpleDateFormat来判断是否是正常时间
String date = list.get(m) + list.get(n) + list.get(p);
try {
sdf.parse(date);
} catch (ParseException e) {
// 遇到非正常时间直接跨过,
continue;
}
// 正确的时间给添加到list中,用来统计
resultList.add(date);
}
}
}
}
public static void main(String[] args) {
List<String> resultList = new ArrayList<>();
sdf.setLenient(false);
for (int i = 0; i < 10; i++) {
for (int j = i + 1; j < 10; j++) {
List<String> list = new ArrayList<>();
fun(i, j, list);
fun1(list, resultList);
list = new ArrayList<>();
fun(j, i, list);
fun1(list, resultList);
}
}
System.out.println(resultList.size());
}
}
到了这里,关于蓝桥 13期 java c组 特殊日期的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!