1 条题解
-
0
1950C - 时钟转换 详细题解(标程版)
核心规则(标程官方公式)
设 24 小时制小时为 ,分钟为 。
1. 转换为 12 小时制小时
$$h_{12} = \begin{cases} 12 & h \bmod 12 = 0 \\ h \bmod 12 & \text{其他情况} \end{cases} $$2. 时段判断
3. 分钟不变
完整分类讨论(标程版)
- 若 → 输出 AM
- 若 → 输出 AM
- 若 → 输出 PM
- 若 → 输出 PM
关键注意点
- 必须保留前导零,例如 → 输出
- 分钟不变
- → AM
- → PM
可直接提交 AC 标程(C++)
#include <iostream> #include <cstdio> using namespace std; int main() { int t; cin >> t; while (t--) { int h, m; scanf("%d:%d", &h, &m); int nh = h % 12; if (nh == 0) nh = 12; if (h < 12) { printf("%02d:%02d AM\n", nh, m); } else { printf("%02d:%02d PM\n", nh, m); } } return 0; }题解总结
- 公式:,为 则改为
- 小于 是 AM,否则 PM
- 用
%02d自动补前导零 - 时间复杂度 ,完美通过所有数据
需要我帮你对拍验证吗?
- 1
信息
- ID
- 7142
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者