文章

【GESP】C++一级模拟练习luogu-B3847,当天的第几秒

GESP一级模拟练习,时间相关的处理和计算方法。

luogu-B3847 [GESP样题 一级] 当天的第几秒

题目要求

描述

小明刚刚学习了小时、分和秒的换算关系。他想知道一个给定的时刻是这一天的第几秒,你能编写一个程序帮帮他吗?

输入

输入一行,包含三个整数和一个字符。三个整数分别表示时刻的时、分、秒;字符有两种取值,大写字母’A’表示上午,大写字母’P’表示下午。

输出

输出一行,包含一个整数,表示输入时刻是当天的第几秒。

输入样例-1

0 0 0 A

输出样例-1

0

输入样例-2

11 59 59 P

输出样例-2

86399


题目分析

  1. 时间单位的换算:

    • 1小时 = 3600秒
    • 1分钟 = 60秒
    • 秒数不做转换。
  2. 判断是上午还是下午:

    • 如果是上午 (A),直接根据给定的时、分、秒来计算当天的秒数。
    • 如果是下午 (P),则要将小时数加上12。

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
int main() {
    int a, b, c;
    char d;
    cin >> a >> b >> c >> d;
    if (d == 'A') {
        cout << a * 3600 + b * 60 + c;
    }
    if (d == 'P') {
        cout << (a + 12) * 3600 + b * 60 + c;
    }
    return 0;
}

所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

题目已加入洛谷Java、C++初学团队作业清单,可在线评测,团队名额有限,欢迎加入。

本文由作者按照 CC BY 4.0 进行授权