修练者
1504 瞌睡虫
经验值:1200 时间限制:1000毫秒
题目描述 Description
小C喜欢在上课的时候打瞌睡,有一天在酷町堂上课被老师逮个正着,老师给他出了一个问题,“给定入睡时刻和醒来时刻(都采用24小时制表示法),计算自己一共睡了多长时间(也采用24小时制表示法)”,如果回答正确的话就可以免于惩罚,如果回答错误以后每次课都需要站着上课,且知道小C睡觉时间最少为1秒,最多为24小时。小C不想被惩罚,求助于你,请你帮他计算一下一共睡觉的时间。
输入描述 Input Description
输入为2行,第一行表示入睡时刻,第二行表示醒来时刻。
两者都采用24小时制“HH:MM:SS”的写法,其中“HH”表示时,范围为0~23、“MM”表示分,范围为0~59,“SS”表示秒,范围为0~59。且如果时、分、秒中有数字只有一位数,需要在前面加0来补齐两位。
输出描述 Output Description
输出为一行,表示一共睡了多长时间,输出格式也采用24小时制“HH:MM:SS”的写法,如果时、分、秒中有数字只有一位数,需要在前面加0来补齐两位。
样例输入 Sample Input
样例1#: 20:00:00 04:00:00 样例2#: 12:34:56 14:36:22
样例输出 Sample Output
样例1#: 08:00:00 样例2#: 02:01:26
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<string>
using namespace std;
int main(){
string a,b,ans=NULL;
int t1,t2,t3,t4,t5,t6,t7=0,t8=0,t9=0;
cin>>a>>b;
t1=(int)(a[0]-48)*10+(int)(a[1]-48);
t2=(int)(a[3]-48)*10+(int)(a[4]-48);
t3=(int)(a[6]-48)*10+(int)(a[7]-48);
t4=(int)(b[0]-48)*10+(int)(b[1]-48);
t5=(int)(a[3]-48)*10+(int)(a[4]-48);
t6=(int)(a[6]-48)*10+(int)(a[7]-48);
if((t1>t4)||(t1==t4&&t2>t5)||(t1==t4&&t2==t5&&t3>t6)){
t7+=24-t1+t4;
t8+=60-t2+t5;
t9+=60-t3+t6;
}else{
t7+=t4-t4;
t8+=t5-t2;
t9+=t6-t3;
}
if(t7<10){
cout<<0<<t7<<":";
}else{
cout<<t7<<":";
}if(t8<10){
cout<<0<<t8<<":";
}else{
cout<<t8<<":";
}if(t9<10){
cout<<0<<t9;
}else{
cout<<t9;
}
return 0;
}
高乐彤在2021-06-20 15:32:01追加了内容
ding!
高乐彤在2021-06-30 08:01:29追加了内容
ding
高乐彤在2021-07-04 21:14:59追加了内容
ding
中级守护
定义int的a,b,c,x,y,z,t1,t2,t,i,j,k和char的m
输入a,m,b,m,c,x,m,y,m,z
t1=a*3600+b*60+c;
t2=x*3600+y*60+z;
如果(t2<=t1){
t2+=24*3600;
}
t=t2-t1;
i=t/3600;
j=t%3600/60;
k=t%60;
中级守护
如果(i<10){
输出"0";
}
输出i和":";
如果(j<10){
输出"0";
}
输出j和":";
如果(k<10){
输出"0";
}
输出k