直接模拟计算。注意秒、时是60进制就好。
#include <iostream>
#include <fstream>
using namespace std;
//#define yangyuan
int main()
{
#ifdef yangyuan
ifstream in("in.txt");
cin.rdbuf(in.rdbuf());
#endif // yangyuan
int n, hour1, minute1, second1, hour2, minute2, second2;
while (cin >> n)
{
while (n--)
{
cin >> hour1 >> minute1 >> second1
>> hour2 >> minute2 >> second2;
int sum = second1 + second2;
if (sum >= 60)
{
second1 = sum - 60;
++minute1;
}
else
second1 = sum;
sum = minute1 + minute2;
if (sum >= 60)
{
minute1 = sum - 60;
++hour1;
}
else
minute1 = sum;
hour1 += hour2;
cout << hour1 << " " << minute1 << " " << second1 << endl;
}
}
#ifdef yangyuan
in.close();
#endif // yangyuan
return 0;
}

本文介绍了一种直接模拟计算的方法来处理时间加法问题。通过使用60进制的特殊性质,实现小时、分钟和秒之间的加法运算,并正确处理进位情况。代码示例展示了如何读取输入数据并进行时间计算。

被折叠的 条评论
为什么被折叠?



