BOJ解题报告(2)-89-统计时间间隔

阅读

题目描述

给出两个时间(24小时制),求第一个时间至少要经过多久才能到达第二个时间。给出的时间一定满足的形式,其中x和y分别代表小时和分钟。0≤x<24,0≤y<60。

输入输出处理

输入格式hh:mm,也就是在数字时钟中最常见的24小时表示法, 对于这种输入形式, 可以仿照87题中的技巧通过 scanf("%d:%d",&hh,&mm)的形式将时间和分钟分别复制到两个整形变量当中.

输出是最少经过的分钟数, 是一个整形变量,没有太多的技巧.

思路

因为题目中要求输出的是分钟数,所以可以先将输入的两个时间换算成当天的分钟数,然后计算时间差就是所求.

要注意的是起始时间大于结束时间的时候, 求出t1-t2要加上24*60(一天的分钟数).

源代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#include<cstdio>
int main(){
    int T,x1,y1,x2,y2;
    scanf("%d",&T);
    while(T--){
        scanf("%d:%d",&x1,&y1);
        scanf("%d:%d",&x2,&y2);
        int t1 = x1*60+y1;
        int t2 = x2*60+y2;
        int res = ((t2>=t1)?(t2-t1):(t2-t1+24*60));
        printf("%d\n",res);
    }
}
使用 Hugo 构建
主题 StackJimmy 设计