当前位置: 首页 > news >正文

上海计算机学会2026年月6月赛C++丙组T1 计算天数

计算天数

题目描述

给定一个日期的年份(用整数 Y 表示)、月(用整数 M 表示)、日(用整数 D 表示),请判断 Y 年 M 月是否存在 D 日:

  • 如果在 Y 年 M 月不存在 D 日,则输出 E;
  • 否则,请计算并输出给定的日期是当年的第几天。

注意闰年的二月有 29 天。

输入格式

  • 第一行:一个整数表示 Y
  • 第二行:一个整数表示 M
  • 第三行:一个整数表示 D

输出格式

单个整数表示给定日期是当年的第几天,如果日期不合法,输出 E。

数据范围

1800≤Y≤28001800 \le Y \le 28001800Y2800

1≤M≤121 \le M \le 121M12

1≤D≤311 \le D \le 311D31

样例

样例1

输入:

2026 2 29

输出:

E

说明:平年2月不存在29天。

样例2

输入:

2020 2 29

输出:

60
#include<bits/stdc++.h>usingnamespacestd;// 我预先定义好平年每个月的天数,下标从1开始,dd[0]无意义intdd[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};intmain(){inty,m,d;cin>>y>>m>>d;// 第一步:判断是否为闰年,如果是则将二月天数改为29// 闰年规则:能被400整除,或者能被4整除但不能被100整除if(y%400==0||(y%4==0&&y%100!=0)){dd[2]=29;}// 第二步:检查日期是否合法,即D是否超过该月应有的最大天数// 如果非法,输出'E'并结束程序if(d>dd[m]){cout<<"E";return0;}// 第三步:累加当年该日期之前所有月份的天数,再加上当前日期D// 注意循环从1月到m-1月,将每个月的天数加到d上(此时d已存储了日)for(inti=1;i<m;i++){d+=dd[i];}// 输出累加结果,即为当年的第几天cout<<d;return0;}

我的题解思路

这道题的核心是日期合法性判断年积日计算
我首先用数组存储平年各月天数,然后根据输入的年份判断是否为闰年,若是则把二月改为29天。
接下来检查输入的日是否大于该月最大天数,若大于则直接输出E表示不合法。
若合法,我就从1月累加到m-1月,将各月天数加到d上,此时d就变成了当年的第几天,最后输出即可。

时间复杂度:O(1)(月份循环最多12次)
空间复杂度:O(1)
只要注意闰年判断条件(%400==0%4==0 && %100!=0)即可避免常见错误。本题数据范围较小,直接模拟即可。

http://www.jsqmd.com/news/1091409/

相关文章:

  • Win11Debloat:3分钟完成Windows系统终极优化
  • 【Linux驱动开发】第21天:SPI总线协议与SPI子系统基础理解
  • 多语言 SDK 一键发布 Skill:OpenAPI → 多语言 SDK 工厂流水线
  • Selenium自动化测试实战:破解浏览器扩展与网络协议黑盒测试难题
  • bp如何导出证书,安装在谷歌浏览器中
  • 机器学习算法
  • ngx_http_index_handler
  • 【2026 Claude Code CLI 常用命令速查】
  • 5分钟解锁联想拯救者BIOS隐藏功能:终极免费工具指南
  • DenseNet:从密集连接看CNN的“信息高速公路”
  • 2026年6月28日全球热点新闻汇总
  • AMD Ryzen调试工具:解锁处理器隐藏性能的终极指南
  • 纳指恐高怎么办?
  • 斜率加一个点就可以确定直线,确定直线就可以确定方向
  • Allegro约束规则进阶:网络类间距设置实战与避坑指南
  • WPS 7月新版本优化C盘占用:安装可选路径,使用可集中管理
  • GitHub中文化插件:3分钟解决英文界面障碍的终极方案
  • 基于TRF7960A的16通道HF RFID多路复用系统设计与工程实践
  • 爬虫--爬虫镜像化--docker部署scrapy
  • 通达信【主升行情】副图指标无未来
  • RAG召回不准先查chunk覆盖到没
  • draw.io流程图绘制结果导出并插入word
  • 告别繁琐的密钥管理:派大星 API —— 你的终极 AI 模型聚合网关与极致性价比之选
  • 美食生活助手:基于 HarmonyOS ArkTS 的 AI 菜谱推荐应用开发实践
  • cu-cockpit:轻量级Linux单节点运维管理平台入门指南
  • TAS5706A评估模块实战:从硬件连接到DSP音频处理全解析
  • AI+智能制造深度融合,华为-博世颜少林助力江铃集团加速智慧工厂转型
  • Claude Code 入门教程——从零安装到独立完成项目(2026最新版)
  • Vector CANoe 以太网通信配置实战:从硬件选型到脚本调试
  • Windows 11硬件限制终极破解指南:MediaCreationTool.bat完整使用手册