解题思路要解决闰年判断问题首先明确闰年的判定规则格里高利历适配题目 1582 年后的范围能被 4 整除但不能被 100 整除能被 400 整除弥补世纪年的特殊情况如 2000 是闰年1900 不是。解题步骤读取区间 [x, y] 的两个年份遍历区间内的每一个年份按规则判断是否为闰年统计闰年个数并收集所有闰年年份按格式输出个数和闰年列表。完整代码C 版cpp运行#include iostream #include vector // 用于存储闰年年份 using namespace std; int main() { int x, y; cin x y; int count 0; // 统计闰年个数 vectorint leap_years; // 存储所有闰年年份 // 遍历[x, y]区间的每一个年份 for (int year x; year y; year) { // 闰年判定规则能被4整除且不能被100整除或能被400整除 if ((year % 4 0 year % 100 ! 0) || (year % 400 0)) { count; // 计数1 leap_years.push_back(year); // 加入闰年列表 } } // 输出闰年个数 cout count endl; // 输出所有闰年年份空格分隔 for (int i 0; i leap_years.size(); i) { if (i 0) { // 除第一个元素外前面加空格 cout ; } cout leap_years[i]; } cout endl; // 换行保证输出格式整洁 return 0; }代码解释闰年判定核心条件(year % 4 0 year % 100 ! 0) || (year % 400 0)严格遵循闰年规则覆盖普通年份和世纪年如 2000 是闰年1900 不是数据存储用count变量统计闰年个数用vectorint存储闰年年份方便后续按顺序输出输出处理先输出个数再遍历vector输出年份通过if (i 0)控制空格避免开头 / 结尾多余空格边界适配题目保证1582 ≤ x y ≤ 3000无需额外处理区间合法性。测试样例验证输入1989 2001执行过程遍历 1989~2001 的年份符合闰年规则的是 1992、1996、2000个数统计为 3输出第一行3第二行按顺序输出1992 1996 2000与样例一致。边界情况测试输入2000 2000→ 输出plaintext1 2000输入1900 1900→ 输出plaintext0 第二行无内容仅换行 ### 总结 1. 闰年规则核心是能被4整除且非整百年 或 能被400整除的整百年 2. 输出格式先输出个数再按递增顺序输出闰年空格分隔无多余空格 3. 数据存储用vector存储闰年年份简洁且易遍历输出。