B3787 [信息与未来 2023] 精密计时题解
思路
我们首先要把两个时间的转化成百分之一秒,直接相减就可以得出答案。那怎么将时间化成百分之一秒呢?显然我们只需要将时分秒乘以相应的进率即可。
参考代码
#include <iostream>
#include <iomanip> // 用于控制输出流格式
using namespace std;
int main()
{
// 读入两个时间
int h1, m1, s1, ms1, h2, m2, s2, ms2;//分别代表时分秒和百分之一秒
char c; // 用于读取冒号和小数点
cin >> h1 >> c >> m1 >> c >> s1 >> c >> ms1;
cin >> h2 >> c >> m2 >> c >> s2 >> c >> ms2;
// 时间转换为百分之一秒
long long t1 = h1 * 360000 + m1 * 6000 + s1 * 100 + ms1;
long long t2 = h2 * 360000 + m2 * 6000 + s2 * 100 + ms2;
// 计算两个时间的差值
cout << t2 - t1 << endl;
return 0;
}