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

相关推荐
她说..1 小时前
Java 对象相关高频面试题
java·开发语言·spring·java-ee
watson_pillow2 小时前
c++ 协程的初步理解
开发语言·c++
庞轩px2 小时前
深入理解 sleep() 与 wait():从基础到监视器队列
java·开发语言·线程··wait·sleep·监视器
故事和你912 小时前
洛谷-算法1-2-排序2
开发语言·数据结构·c++·算法·动态规划·图论
皮皮林5513 小时前
面试官:ZSet 的底层实现是什么?
java
码云数智-大飞3 小时前
C++ RAII机制:资源管理的“自动化”哲学
java·服务器·php
2601_949816583 小时前
Spring+Quartz实现定时任务的配置方法
java
白毛大侠3 小时前
理解 Go 接口:eface 与 iface 的区别及动态性解析
开发语言·网络·golang
李昊哲小课4 小时前
Python办公自动化教程 - 第7章 综合实战案例 - 企业销售管理系统
开发语言·python·数据分析·excel·数据可视化·openpyxl
Hou'4 小时前
从0到1的C语言传奇之路
c语言·开发语言