P5707 【深基2.例12】上学迟到

# 【深基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);
}

解释:

  1. 当家到学校的路程不能被速度整除时,要提前一分钟,不然就会迟到;
  2. 需要的时间可能会很长,可能会需要提前一天出发;
  3. 时间是24小时制的;
  4. 有十分钟垃圾分类的时间,不要忘了;
  5. 输出的小时和分钟要输出两位,不足10的时候要补0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值