酷代码 AI
菜单
服务商

题目描述 假设现在是 y 年 m 月 d 日 h 时而 k 小时后是 y′ 年 m′ 月 d′ 日 h′ 时,对于给定的 y,m,d,h,k,小杨想请你帮他计算出对应的 y′,m′,d′,h′ 是多少。 输入格式 输入包含五行,每行一个正整数,分别代表 y,m,d,h,k。 输出格式 输出四个正整数,代表 y ′,m ′,d ′,h ′。 输入样例1 2008 2 28 23 1 输出样例1 2008 2 29 0 说明/提示 对于全部数据,保证有 2000≤y≤3000,1≤m≤12,1≤d≤31,0≤h≤23,1≤k≤24。数据保证为合法时间。 闰年判断规则 普通闰年:年份能被 4 整除,但不能被 100 整除。 世纪闰年:年份能被 400 整除。 满足以上任意一条规则的年份就是闰年,否则是平年。 用c++ 回答篇幅:简单明了

```cpp #include <iostream> using namespace std; // 判断是否为闰年 bool isLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); } // 每个月的天数 int daysInMonth(int year, int month) { int days[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; if (month == 2 && isLeapYear(year)) { return 29; } return days[month]; } int main() { int y, m, d, h, k; cin >> y >> m >> d >> h >> k; h += k; while (h >= 24) { h -= 24; d++; if (d > daysInMonth(y, m)) { d = 1; m++; if (m > 12) { m = 1; y++; } } } cout << y << " " << m << " " << d << " " << h; return 0; } ``` [2025-10-29 20:27:44 | AI问答 | 323点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多