读取四个整数 A,B,C,D用来表示游戏的开始时间和结束时间。
其中 A 和 B 为开始时刻的小时和分钟数,C 和 D 为结束时刻的小时和分钟数。
请你计算游戏的持续时间。
比赛最短持续 1 分钟,最长持续 24小时。
输入格式
共一行,包含四个整数 A,B,C,D。
输出格式
输出格式为 O JOGO DUROU X HORA(S) E Y MINUTO(S)
,表示游戏共持续了 X 小时 Y 分钟。
#include <cstdio>
int main()
{
int a,b,c,d;
scanf("%d%d%d%d",&a,&b,&c,&d);
int start=a*60+b; //开始的分钟数
int end=c*60+d; //结束的分钟数
int spent_time=end-start; //算差得出游戏时长(分钟)
if(spent_time<=0) spent_time+=1440; //情况2
printf("O JOGO DUROU %d HORA(S) E %d MINUTO(S)",spent_time/60,spent_time%60);
return 0;
}
有两种情况:
1.a<b : 过去的小时数应该为b-a(前提是在24小时内)
第10行这一步应该为情况2:a>=b,小时数的计算应该为24-a+b(前提是不能有0分钟出现,否则不能区分游戏时长是0分钟还是24小时),在此之前已经进行了b-a的运算,所以此时直接加上24小时。(仅作为作者的题解记录)