【深基7.例3】闰年展示 · 教师题解

【深基7.例3】闰年展示

解题思路

枚举区间内每一年,符合闰年规则的年份存入数组,先输出数量,再输出年份。

正确性说明

闰年恰好是能被 400 整除,或能被 4 整除但不能被 100 整除的年份。逐年判断恰好收集全部答案且顺序递增。

易错点

1900 不是闰年,2000 是闰年;区间包含两端。

复杂度

区间长度 k,时间 O(k),空间 O(k)。

参考代码(C++11)

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int x, y;
    cin >> x >> y;
    vector<int> a;
    for (int z = x; z <= y; z++)
        if (z % 400 == 0 || (z % 4 == 0 && z % 100 != 0))
            a.push_back(z);
    cout << a.size() << "\n";
    for (size_t i = 0; i < a.size(); i++) {
        if (i)
            cout << " ";
        cout << a[i];
    }
    cout << "\n";
    return 0;
}
返回题目