模拟:时间换算

10 分钟

时间换算的万能思路是:不管输入是什么格式,先全部化成"秒"这个统一单位,算完再换回时分秒。这样加减都变成普通整数运算,不用操心进位。

秒转时分秒:

int s;  cin >> s;
int h   = s / 3600;
int m   = s % 3600 / 60;
int sec = s % 60;
printf("%02d:%02d:%02d\n", h, m, sec);

两个时间相加,就是各自化成秒相加,再转回来。比如 秒: 时,余 秒; 分余 秒,即 1:02:05。

坑有几个:一是输出补零,2 分要写成 02,用 %02d;二是跨天,超过 24 小时要不要对 取模,看题目;三是别用浮点算时间,除法会有精度误差,全程用整数。复杂度 ,纯考细心。

小纸条

3725 秒是几时几分几秒?

登录 后可看答案

模拟:时间换算 · 考级冲刺 · op599 课程