P2408 特殊日期

我们先看代码:

java 复制代码
public class Main {
    public static void main(String[] args) {
        int count = 0;
        for(int year = 1900 ; year <= 9999 ; year++) {
            int sumYear = getSum(year);

            for (int month = 1; month <= 12; month++) {
                int maxDay = getMaxDay(month , year);
                int sumMonth = getSum(month);
                for(int day = 1 ; day <= maxDay ; day++){
                    int sumDay = getSum(day);
                    if(sumYear == sumMonth + sumDay){
                        count++;
                    }
                }
            }
        }
        System.out.println(count);
    }

    public static int getSum(int num){
        int sum = 0;
        while(num > 0){
            sum += num % 10;
            num /= 10;
        }
        return sum;
    }
    public static int getMaxDay(int month ,int year){
        switch (month){
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                return 31;
            case 4:
            case 6:
            case 9:
            case 11:
                return 30;
            case 2:
            return isLeapYear(year) ? 29 : 28;
            default:
                return 0;
        }
    }

    public static boolean isLeapYear(int year) {
        return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ;
    }
}

我们分模块分析:

这部分函数是为了获取每一位数字并将其加和

这部分函数是为了找到每个月的最大天数

注意还有闰年的存在,所以要有一个判断函数

如果是的话就返回true,如果不符合就返回false

相关推荐
默辨25 分钟前
我用Java后端的视角读了一遍JoyAgent-JDGenie
java·开发语言
常山云栈26 分钟前
如何理解python中的鸭子模(类)型?
开发语言·python
SQL-First布道者30 分钟前
⚡ Spring JDBC 完整体系 · 第 5 讲 · Spring Boot Starter JDBC
java·spring boot·spring·mybatis·spring jdbc
y = xⁿ30 分钟前
DeepSeek harness工具系统什么设计的?
开发语言·python
宋哥转AI33 分钟前
深入理解 AI Agent · 多 Agent 编排 #03:Supervisor 与 Orchestrator——Dream-SaaS 双层编排架构拆解
java·人工智能·ai
luj_176834 分钟前
尾椎藏今生记忆?骨盆对应不确定性
开发语言·网络·c++·经验分享·算法
木井巳37 分钟前
【JavaEE】Spring Web MVC 入门
java·spring boot·spring·servlet·java-ee
ttwuai39 分钟前
Go 后台接入 CAS 单点登录后,原来的权限怎么继续生效?
开发语言·后端·golang
断点之下1 小时前
C++类和对象:六个默认成员函数详解
开发语言·c++