测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A33023. 精密计时小小有一个非常精密的计时器,每秒可以计数 100 次 (两个连续的时钟计数之间恰好间隔百分之一秒)。例如,以下是从 13:01:02.37 到 13:01:03.01 的计时过程:13:01:02.37 (13 时 1 分 2 秒.37)13:01:02.3813:01:02.39...13:01:02.9813:01:02.99 (13 时 1 分 2 秒.99)13:01:03.00…

填空题 困难

题目描述

精密计时

小小有一个非常精密的计时器,每秒可以计数 100 次 (两个连续的时钟计数之间恰好间隔百分之一秒)。例如,以下是从 13:01:02.37 到 13:01:03.01 的计时过程:

13:01:02.37 (13 时 1 分 2 秒.37)

13:01:02.38

13:01:02.39

...

13:01:02.98

13:01:02.99 (13 时 1 分 2 秒.99)

13:01:03.00 (13 时 1 分 3 秒.00)

13:01:03.01

小小记录了计时器上的两个时刻,你能帮助他计算这两个时刻之间经过了多少个 “百分之一秒”吗?

输入格式

输入数据仅一行,包含空格分开的两个字符串,代表了两个计时器上显示的时刻。时刻中的时、分、秒、百分之一秒均使用两位十进制数字表示,不足两位时在十位添零。时、分、秒之间用冒号 : 分隔,秒和百分之一秒之间用小数点 . 分隔。

输出格式

输出一行一个整数,代表两个时刻之间经过的 “百分之一秒” 数。

样例输入 1

01:02:34.56 01:03:00.10

样例输出 1

2554

样例输入 2

00:00:00.00 23:59:59.99

样例输出 2

8639999

数据规模

对于 100% 的数据,两个时刻都来自 24 小时制的同一天 (00:00:00.00 到 23:59:59.99),且保证后一个时刻晚于前一个时刻。

参考答案

#include <iostream> #include <string> #include <sstream> using namespace std; int main() { string time1, time2; cin >> time1 >> time2; int h1, m1, s1, ms1, h2, m2, s2, ms2; sscanf(time1.c_str(), "%02d:%02d:%02d.%02d", &h1, &m1, &s1, &ms1); sscanf(time2.c_str(), "%02d:%02d:%02d.%02d", &h2, &m2, &s2, &ms2); int total1 = h1 * 360000 + m1 * 6000 + s1 * 100 + ms1; int total2 = h2 * 360000 + m2 * 6000 + s2 * 100 + ms2; cout << total2 - total1 << endl; return 0; }
上一题 下一题