AcWing 668. 游戏时间2(俩种做法,%实现限定数据范围)
原题链接
简单
作者:
枫哥
,
2024-10-22 09:39:25
,
所有人可见
,
阅读 1
#include <iostream>
using namespace std;
int main() {
int A,B,C,D,hour,min;
cin >> A >> B >> C >> D;
// 处理时长非24小时情况
// 法1
if(A <= C && B > D){
hour = (C - A - 1 + 24) % 24; // C - A - 1取值范围为-1~22, +24和%24处理-1时的特殊情况(eg:7:30-7:29)
min = 60- B + D;
}
if(A <= C && B <= D){
hour = C - A;
min = D - B;
}
if(A > C && B > D){
hour = 24 - A + C - 1;
min = 60 - B + D;
}
if(A > C && B <= D){
hour = 24 - A + C;
min = D - B;
}
// 法2
// if (D >= B) {
// min = D - B;
// } else {
// min = 60 - (B - D);
// C -= 1; // 借用1个小时
// }
// // 处理小时差
// if (C >= A) {
// hour = C - A;
// } else {
// hour = 24 - (A - C); // 跨天情况
// }
// 处理时长为24小时情况
if (C == A && D == B) {
hour = 24;
min = 0;
}
cout << "O JOGO DUROU "<< hour << " HORA(S) E " << min << " MINUTO(S)";
return 0;
}
大佬好牛,加油