1 条题解
-
0
📝 题目大意
在 AtCoder 国的历法中,一年有 个月,每月有 天。给定一个日期 ,求该日期的下一天。
💡 解题思路
- 题目分析:这是一道简单的日期模拟题。数据范围 ,,直接模拟进位即可,不需要考虑闰年等复杂规则。
- 算法推导:
- 先将天数 加 (进入下一天)。
- 若 ,说明超出当月天数,则 重置为 ,月份 加 。
- 若 ,说明超出当年月数,则 重置为 ,年份 加 。
- 最后输出 。
- 边界与细节:
- 月末最后一天:如 ,加 后 ,触发月份进位,正确。
- 年末最后一天:如 且 ,先触发月份进位,再触发年份进位,正确。
- 普通日期:,仅 加 , 和 不变,正确。
⏱️ 复杂度分析
- 时间复杂度:,仅常数次判断与赋值。
- 空间复杂度:,仅使用 个整型变量。
💻 标准代码 (C++)
#include <iostream> using namespace std; int main() { int M, D, y, m, d; cin >> M >> D >> y >> m >> d; d++; // 进入下一天 if (d > D) { // 天数超出当月,月份进位 d = 1; m++; if (m > M) { // 月份超出当年,年份进位 m = 1; y++; } } cout << y << " " << m << " " << d << endl; return 0; }
- 1
信息
- ID
- 760
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 上传者