# 【深基2.例12】上学迟到
## 题目描述
学校和 yyy 的家之间的距离为 $s$ 米,而 yyy 以 $v$ 米每分钟的速度匀速走向学校。
在上学的路上,yyy 还要额外花费 $10$ 分钟的时间进行垃圾分类。
学校要求必须在上午 $\textrm{8:00}$ 到达,请计算在不迟到的前提下,yyy 最晚能什么时候出门。
由于路途遥远,yyy 可能不得不提前一点出发,但是提前的时间不会超过一天。
## 输入格式
一行两个正整数 $s,v$,分别代表路程和速度。
## 输出格式
输出一个 $24$ 小时制下的时间,代表 yyy 最晚的出发时间。
输出格式为 $\texttt{HH:MM}$,分别代表该时间的时和分。必须输出两位,不足前面补 $0$。
## 样例 #1
### 样例输入 #1
```
100 99
```
### 样例输出 #1
```
07:48
```
## 提示
对于 $100\%$ 的数据,$1 \le s,v \le 10^4$。
答案:
#include <cstdio>
int main()
{
int S;//家到学校的距离
int V;//行走的速度
scanf("%d%d",&S,&V);
int t;
if(S%V==0)//因为后面是从07:59开始的,所以这里的时间少一分钟
{
t=S/V;
t+=9;//垃圾分类的时间
}
else
{
t=S/V;//时间如果不能被速度整除,就要提前一分钟出发
t+=10;//垃圾分类的时间
}
int H;//保存出发的小时,分钟
int M;
H=7;
M=59;
while(t!=0)
{
if(M!=0)
{
M--;
}
else
{
if(H!=0)
{
H--;
M=59;
}
else
{
H=23;
M=59;
}
}
t--;
}
int h1,h2;//分开保存小时,分钟的十位,个位
int m1,m2;
h1=H/10;
h2=H-(10*(H/10));
m1=M/10;
m2=M-(10*(M/10));
printf("%d%d:%d%d",h1,h2,m1,m2);
}
解释:
- 当家到学校的路程不能被速度整除时,要提前一分钟,不然就会迟到;
- 需要的时间可能会很长,可能会需要提前一天出发;
- 时间是24小时制的;
- 有十分钟垃圾分类的时间,不要忘了;
- 输出的小时和分钟要输出两位,不足10的时候要补0。