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;
}
上一题
下一题