题目
描述:
给定两个合法的时间(格式固定:hh:mm:ss,时间合法,不用考虑其它情况),输入两个时间相加后的结果;注意,相加后的结果也必需是一个合法的时间;
附合法时间定义:小时在[00-23]之间,分钟和秒分别是在[00-59]之间;
运行时间限制:
无限制
内存限制:
无限制
输入:
时分秒格式的时间字符串,如00:00:00
输出:
时分秒格式的时间字符串,如00:00:00
样例输入:
00:00:00 00:00:01
样例输出:
00:00:01
答案提示: 建议将时间转换为秒数计算
代码
#include <iostream>
#include <string>
#include <vector>
#include <stack>
#include <algorithm>
using namespace std;
string Int2Str(int num){
string str = "";
if(num == 0){
str = "0";
return str;
}
while(num){
str.insert(str.begin(),num % 10 + '0');
num /= 10;
}
return str;
}
string TimeAdd(string t1,string t2){
int h1 = atoi(t1.substr(0,2).c_str());
int h2 = atoi(t2.substr(0,2).c_str());
int m1 = atoi(t1.substr(3,2).c_str());
int m2 = atoi(t2.substr(3,2).c_str());
int s1 = atoi(t1.substr(6,2).c_str());
int s2 = atoi(t2.substr(6,2).c_str());
int s = (s1 + s2) % 60;
int m = (m1 + m2 + (s1 + s2) / 60) % 60;
int h = (h1 + h2 + (m1 + m2) / 60) % 24;
string str = "";
if(h < 10){
str += "0";
}
str += Int2Str(h) + ":";
if(m < 10){
str += "0";
}
str += Int2Str(m) + ":";
if(s < 10){
str += "0";
}
str += Int2Str(s);
return str;
}
string TimeAdd2(string t1,string t2){
int h1 = atoi(t1.substr(0,2).c_str());
int h2 = atoi(t2.substr(0,2).c_str());
int m1 = atoi(t1.substr(3,2).c_str());
int m2 = atoi(t2.substr(3,2).c_str());
int s1 = atoi(t1.substr(6,2).c_str());
int s2 = atoi(t2.substr(6,2).c_str());
int total = h1 * 60 * 60 + m1 * 60 + s1 + h2 * 60 * 60 + m2 * 60 + s2;
int s = total % 60;
int m = total / 60 % 60;
int h = total / 60 / 60 % 24;
string str = "";
if(h < 10){
str += "0";
}
str += Int2Str(h) + ":";
if(m < 10){
str += "0";
}
str += Int2Str(m) + ":";
if(s < 10){
str += "0";
}
str += Int2Str(s);
return str;
}
int main(){
string t1,t2;
while(cin>>t1>>t2){
cout<<TimeAdd(t1,t2)<<" "<<TimeAdd2(t1,t2)<<endl;
}
return 0;
}
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
华为机试真题(非牛客网试练题)OD考试真题,不定期更新,文档含代码解答
华为机试一霸教你过华为机试演讲稿..pdf
收集整理华为机试108题,目录清晰,内涵C、C++答案 适合初中级练手学习,短时突击
华为OD机试(..75.rar
华为OD机试真题整理合集
华为机试一霸教你过华为机试。大菊厂招聘有三关,心理测试,机试,面试。
华为机试一霸教你过华为机试.doc
华为OD系列--华为OD机试
(43条消息) 华为OD机试真题2023(JAVA&JS)_华为机试真题_若博豆的博客-CSDN博客.mhtml
华为 OD 机试真题 机试题专栏 题目来自牛客平台机考同学的机试分享,题目描述信息可能记录不完整,题解无法保证通过率,只提供结题思路,注意!注意!!不要直接使用博主代码进行机考! 欢迎加微信: Ayemmar 本文...
本人在准备2014年华为机试的时候,进行整理的,代码全部运行成功。如有错误,请大家见谅。
华为机试(Python)真题Od.docx
华为机试一霸教你过华为机试e-18页.pdf
如果你想要加入华为公司,那么参加华为OD机试真题是一个不错的选择。 华为OD机试真题的题目难度较高,需要应聘者具备扎实的编程基础和较强的逻辑思维能力。在华为OD机试真题中,应聘者需要解决一系列的算法和数据...
里面有几十道华为历届考过的机试题,可供大家研究和参考,主要是里面的思想,只要理解透了里面的思想,非常有助于机试。
华为机试算法题总结 经验分享
2014年华为机试资料以及本人面试经历,对于应聘华为很有用
自己编写的加别人编写的程序。辛苦了好久!
2014重邮华为机试(2013.9.14和2013.9.15)一共三场的题目
【华为OD机试真题2023JAVA】寻找符合要求的最长子串.html