题目描述
随着“开心农场”等娱乐游戏风靡互联网,“偷菜”遂瞬间蹿红网络,席卷网民生活。于是,“你‘偷’了吗”便成为大家见面的招呼语。很快,数百万都市白领成为“偷菜”队伍中的主力军,每天在“偷”与防“偷”中乐此不疲,甚至定闹钟半夜起床“偷”菜。根据“农作物”生长规律而变化制定偷菜时间表。
输入描述:
假设当前时间为13:15,第一行输入作物种类数n,从第二行开始输入n 种作物成熟需要的时间,格式为 Hour:Minute。
输出描述:
依次输出n 种作物成熟时间,每行输出一个。
示例
输入
3
0:30
1:10
12:50
输出
13:45
14:25
2:5
思路
-
当前时间为13:15,判断输入的时:分,并与当前时间进行相加。
-
判断相加后是否会溢出。(小时不能>23,24为0时。分钟不能>59,60为0分)并对每种情况作相应处理。
具体实现
#include<bits/stdc++.h>
using namespace std;
int main(){ //当前13:15
int n,h,m;
cin>>n;
for(int i=0; i<n; i++){
scanf("%d:%d",&h,&m);
int h1,m1;
if(m<45 && h<11){
m1=m+15;
h1=h+13;
}else if(m>=45 && h<11){
m1=15+m-60;
h1=h+13;
}else if(m<45 && h>=11){
m1=m+15;
h1=13+h-24;
}else if(m>=45 && h>=11){
m1=m+15-60;
h1=h+13-24+1; //分钟溢出,所以小时要多+1
}
printf("%d:%d\n",h1,m1);
}
return 0;
}
小结
细心+多思考。