TB椰程 TypeBuddy 打字搭子

2025-03 · 2级 · 时间跨越

GESP 标程 · 考级真题 · 代码 · cpp · 难度 3/5 · 共 1099 字

CCF 原卷官方标程 · 位运算 · 本地编译通过

  • 2025-03
  • 位运算

正文

// GESP 2025-03 C++ 2级 编程题 2 · 时间跨越
// 原题:https://oj.yecheng.tv/p/gs2503l2p2
// 官方原卷:https://gesp.ccf.org.cn/101/attach/1669256796176416.pdf
// 题意:假设现在是年月日时而小时后是年月日时,对于给定的 ,小杨想请你帮他计算出对应的是多少。
// 知识点:位运算
// 参考程序:CCF 原卷官方标程,PDF 抽取后已去行号;本地编译核验通过,供打字练习
// 原卷样例验证:样例验证 1/1 通过
//
#include <iostream>
using namespace std;
int main() {
    int y, m, d, h, k;
    cin >> y >> m >> d >> h >> k;
    h += k;
    if (h >= 24) {
        h -= 24;
        d += 1;
        int days = 0;
        if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {
            days = 31;
        } else if (m == 4 || m == 6 || m == 9 || m == 11) {
            days = 30;
        } else if (m == 2) {
            if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0)) {
                days = 29;
            } else {
                days = 28;
            }
        }
        if (d > days) {
            d -= days;
            m += 1;
            if (m > 12) {
                m = 1;
                y += 1;
            }
        }
    }
    cout << y << " " << m << " " << d << " " << h << "\n";
    return 0;
}

GESP 标程 · 考级真题的其它内容

打字首页 · 英语学习中心 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK