题目描述
学校和 yyy 的家之间的距离为 s 米,而 yyy 以 v 米每分钟的速度匀速走向学校。
在上学的路上,yyy 还要额外花费 10 分钟的时间进行垃圾分类。
学校要求必须在上午 8:00 到达,请计算在不迟到的前提下,yyy 最晚能什么时候出门。
由于路途遥远,yyy 可能不得不提前一点出发,但是提前的时间不会超过一天。
输入格式
一行两个正整数s,v,分别代表路程和速度。
输出格式
输出一个 24 小时制下的时间,代表 yyy 最晚的出发时间。
输出格式为 HH:MM,分别代表该时间的时和分。必须输出两位,不足前面补 0。
输入输出样例
输入
100 99
输出
07:48
一、题目解释
提前的时间不会超过一天的意思,并不是提前的时间不能超过24小时(即昨天8:00),而是,yyy再早,也得在昨天的时间范围内,即昨天的00:00~24:00。
二、题解
解题步骤:
求出需要的分钟数t;
通过t(t是否大于8*60),判断出发时间是在今天(00:00~08:00),还是昨天(00:00~24:00);
转换成24小时制HH:MM后,是否需要在第一位补0;
#include <stdio.h>
int main()
{
int v,s,t1,h1,m1,t;
scanf("%d%d",&s,&v);
/*求分钟数t*/
if(s%v==0)
t=s/v+10;
else
t=s/v+10+1;
//判断是在今天还是昨天出发的
if(t>8*60){
t1=24*60-(t-8*60);
}
else{
t1=8*60-t;
}
//判断小时和分钟输出时,是否前加0
h1=t1/60;
m1=t1%60;
if(h1<10){
if(m1<10) printf("0%d:0%d",h1,m1);
else printf("0%d:%d",h1,m1);
}
}
else{
if(m1<10){
printf("%d:0%d",h1,m1);
}
else{
printf("%d:%d",h1,m1);
}
}
return 0;
}