AcWing 668. 游戏时间2(包含通俗写法)
原题链接
中等
作者:
nanchen
,
2021-02-06 19:55:25
,
所有人可见
,
阅读 2326
C++ 代码(通俗写法)
#include <iostream>
using namespace std;
int main()
{
int a, b, c, d, minute1, minute2;
cin >> a >> b >> c >> d;
minute1 = a * 60 + b;
minute2 = c * 60 + d;
int hour = 0, minute = 0;
int dec = minute2 - minute1;
if(dec == 0)
{
hour = 24;
minute = 0;
}
else
{
if(dec < 0) //如 22:00 到 5:00
{
dec += 24 * 60; //dec计算的是5点到22点的时间,共17小时。故应用一天的分钟(24*60)减去,才是正确经历的分钟
}
hour = dec / 60;
minute = dec % 60;
}
cout << "O JOGO DUROU " << hour << " HORA(S) E " << minute << " MINUTO(S)";
return 0;
}
仅else中有改变
C++ 代码(合并)
#include <iostream>
using namespace std;
int main()
{
int a, b, c, d,minute1, minute2;
cin >> a >> b >> c >> d;
minute1 = a * 60 + b;
minute2 = c * 60 + d;
int hour = 0, minute = 0;
int dec = minute2 - minute1;
if(dec == 0)
{
hour = 24;
minute = 0;
}
else
{ //dec为正时,相加求余后仍为原来的数;dec为负时,相加后为互补,求余后为正确经历的分钟。故可合并
hour = (dec + 24 * 60) % (24 * 60) / 60;
minute = (dec + 24 * 60) % (24 * 60) % 60;
}
cout << "O JOGO DUROU " << hour << " HORA(S) E " << minute << " MINUTO(S)";
return 0;
}
真厉害
简单易懂的写法!大赞