偷菜时间表

167 阅读1分钟

题目描述

随着“开心农场”等娱乐游戏风靡互联网,“偷菜”遂瞬间蹿红网络,席卷网民生活。于是,“你‘偷’了吗”便成为大家见面的招呼语。很快,数百万都市白领成为“偷菜”队伍中的主力军,每天在“偷”与防“偷”中乐此不疲,甚至定闹钟半夜起床“偷”菜。根据“农作物”生长规律而变化制定偷菜时间表。

输入描述:

假设当前时间为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;
}

小结

细心+多思考。