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;
}