返回题解分享
讨论 / 题解分享/ 帖子详情

跑步锻炼(结果填空) - 题解

public class Main {

    public static void main(String[] args) {

        boolean f = false;
        int ans = 0;
        int week = 0; //记录今天是星期几
        for (int year = 2000; year <= 2022; year++) {
            for (int month = 1; month <= 12; month++) {
                for (int day = 1; day <= 31; day++) {
                    if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10
                            || month == 12) {
                        ;    //这些月份是31天
                    } else if (month == 2) {
                        //闰年
                        if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
                            if (day > 29)
                                //闰年的2月有29天
                                break;
                        } else {
                            if (day > 28) {
                                //不是闰年的2月有28天
                                break;
                            }
                        }
                    } else {
                        //不是2月和if月份的 , 其他月份有30天
                        if (day > 30) {
                            break;
                        }
                    }

                    if (year == 2000 && month == 1 && day == 1) {
                        f = true;
                        week = 5;
                    }
                    week = (week + 1) % 7; //记录今天是星期几

                    if (f) {
                        if (week == 1 || day == 1) { //day=1表示每月月初
                            ans += 2;
                        } else {
                            ans++;
                        }
                    }

                    if (year == 2020 && month == 10 && day == 1) {
                        System.out.println(ans);
                        return;
                    }


                }
            }

        }
    }
}
0 回复 0 转发 0 喜欢 1 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!