描述
小乐乐比较懒惰,他现在想睡觉,然后再去学习。他知道现在的时刻,以及自己要睡的时长,想设定一个闹钟叫他起床学习,但是他太笨了,不知道应该把闹钟设定在哪个时刻,请你帮助他。(只考虑时和分,不考虑日期)
输入描述:
输入现在的时刻以及要睡的时长k(单位:minute),中间用空格分开。
输入格式:hour:minute k(如hour或minute的值为1,输入为1,而不是01)
(0 ≤ hour ≤ 23,0 ≤ minute ≤ 59,1 ≤ k ≤ 109)
输出描述:
对于每组输入,输出闹钟应该设定的时刻,输出格式为标准时刻表示法(即时和分都是由两位表示,位数不够用前导0补齐)。
示例:
输入:
0:0 100
输出:
01:40
思路:主要就是进制转换,需要注意的是,此题需要联系生活实际一天最多24h,一小时最多60mins
#include <stdio.h>
int main() {
int hour = 0;
int minute = 0;
int k = 0;
scanf("%d:%d %d", &hour, &minute, &k); //读取 k是休息时间!!!
getchar(); //清除缓冲区
if (k >= 1440) //一天1440分钟
{
k %= 1440; //类比周期性
}
hour += k / 60; //k/60 得到休息的小时,累加到hour
minute += k % 60; //k%60 得到休息的分钟数,累加到minute
if (minute >= 60)
{
hour++; //满60进1
minute-=60; //一小时最多60分钟
}
if (hour >= 24)
{
hour -= 24; //一天不会有25小时
}
printf("%02d:%02d\n", hour, minute); //输出格式
return 0;
}