1 条题解

  • 0
    @ 2026-10-18 17:43:29

    G1002 [GESP202303 一级] 每月天数 题解

    难度:1(GeekPi教学评定);知识点:条件判断、闰年判断、日期计算。

    解题思路

    先用月份表取得天数。只有二月需要判断闰年:能被400整除,或者能被4整除且不能被100整除。闰年二月在28天上加1。

    为什么正确

    除二月外,月份表就是答案;二月按完整的闰年规则决定28或29天。

    易错点

    1900年不是闰年,2000年是闰年;不要只用能否被4整除判断。

    复杂度

    时间:O(1);额外空间:O(1)。

    参考代码(C++17)

    #include<bits/stdc++.h>
    
    using namespace std;
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        int y,m;
        cin>>y>>m;
        int d[]= {
            0,31,28,31,30,31,30,31,31,30,31,30,31
        }
        ;
        cout<<d[m]+(m==2&&(y%400==0||(y%4==0&&y%100!=0)));
    }
    

    来源与说明

    本题解为配套教学整理,非官方题解。题库使用自行生成的测试数据,14个测试点。

    • 1

    信息

    ID
    610
    时间
    1000ms
    内存
    128MiB
    难度
    进阶
    标签
    递交数
    2
    已通过
    1
    上传者