2021蓝桥杯大赛软件类国赛Java大学B组 完全日期 复杂遍历搜索

简介: 2021蓝桥杯大赛软件类国赛Java大学B组 完全日期 复杂遍历搜索

package Dduo;
 
public class Main {
  public static void main(String[] args) {
    int cnt=0;
    int arr[]=new int[] {0,31,28,31,30,31,30,31,31,30,31,30,31};
  
    int day=1;
    int month=1;
    int year=2001;
    for(;;day++) {
      if(day>arr[month]) {
        day=1;
        month++;
      }
      if(month>12) {
        month=1;
        day=1;
        year++;
      }
      if(year==2022&&month==1&&day==1)break;
      if(judge(sum(year)+sum(month)+sum(day))) {
        System.out.println(year+" "+month+" "+day);
        cnt++;
      }
    }
    //单独判断闰年
    if(judge(sum(2004)+sum(2)+sum(29))) {
      System.out.println(year+" "+month+" "+day);
      cnt++;
    }
    if(judge(sum(2008)+sum(2)+sum(29))) {
      System.out.println(year+" "+month+" "+day);
      cnt++;
    }
    if(judge(sum(2012)+sum(2)+sum(29))) {
      System.out.println(year+" "+month+" "+day);
      cnt++;
    }
    if(judge(sum(2016)+sum(2)+sum(29))) {
      System.out.println(year+" "+month+" "+day);
      cnt++;
    }
    if(judge(sum(2020)+sum(2)+sum(29))) {
      System.out.println(year+" "+month+" "+day);
      cnt++;
    }
    System.out.print(cnt);
  }
  public static int sum(int x) {
    int sum=0;
    while(x>0) {
      sum+=x%10;
      x/=10;
    }
    return sum;
  }
  public static boolean  judge(int x) {
    int ans=(int )Math.sqrt(x);
    if(ans*ans==x)return true;
    else return false;
  }
}
目录
相关文章
|
8月前
蓝桥杯真题time模块详解 | 顺子日期 星期一
蓝桥杯真题time模块详解 | 顺子日期 星期一
|
5月前
|
Java API 调度
Java 日期与时间处理:精准掌控时间流转
Java 8引入了全新的日期和时间API,解决了旧版`java.util.Date`和`Calendar`类设计不佳、操作繁琐的问题。新API包括`LocalDate`、`LocalTime`和`LocalDateTime`类,操作简洁直观,符合日常思维习惯。同时提供了`Period`和`Duration`处理时间间隔,以及`DateTimeFormatter`进行格式化输出。这些改进使开发者能更高效、准确地处理日期和时间,极大提升了开发效率与代码质量。 (239字符)
111 6
|
11月前
|
Java
Java基础之日期和时间
Java基础之日期和时间
65 1
|
12月前
|
存储 机器学习/深度学习 算法
第十五届蓝桥杯pb组国赛E题[马与象] (15分)BFS算法 详解
第十五届蓝桥杯pb组国赛E题[马与象] (15分)BFS算法 详解
230 3
|
7月前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
130 26
|
7月前
|
安全 Java API
告别SimpleDateFormat:Java 8日期时间API的最佳实践
在Java开发中,处理日期和时间是一个基本而重要的任务。传统的`SimpleDateFormat`类因其简单易用而被广泛采用,但它存在一些潜在的问题,尤其是在多线程环境下。本文将探讨`SimpleDateFormat`的局限性,并介绍Java 8引入的新的日期时间API,以及如何使用这些新工具来避免潜在的风险。
95 5
|
8月前
|
Java API
Java的日期类都是怎么用的
【10月更文挑战第1天】本文介绍了 Java 中处理日期和时间的三个主要类:`java.util.Date`、`java.util.Calendar` 和 `java.time` 包下的新 API。`Date` 类用于表示精确到毫秒的瞬间,可通过时间戳创建或获取当前日期;`Calendar` 抽象类提供丰富的日期操作方法,如获取年月日及时区转换;`java.time` 包中的 `LocalDate`、`LocalTime`、`LocalDateTime` 和 `ZonedDateTime` 等类则提供了更为现代和灵活的日期时间处理方式,支持时区和复杂的时间计算。
122 14
|
9月前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
103 3
|
9月前
|
安全 Java API
时间日期API(Date,SimpleDateFormat,Calendar)+java8新增日期API (LocalTime,LocalDate,LocalDateTime)
这篇文章介绍了Java中处理日期和时间的API,包括旧的日期API(Date、SimpleDateFormat、Calendar)和Java 8引入的新日期API(LocalTime、LocalDate、LocalDateTime)。文章详细解释了这些类/接口的方法和用途,并通过代码示例展示了如何使用它们。此外,还讨论了新旧API的区别,新API的不可变性和线程安全性,以及它们提供的操作日期时间的灵活性和简洁性。
|
10月前
|
前端开发 JavaScript Java
【前端学java】java中的日期操作(13)
【8月更文挑战第10天】java中的日期操作
65 2
【前端学java】java中的日期操作(13)