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

重要提示:创作不易,点个关注

题目描述

学校和 yyy 的家之间的距离为 s s s 米,而 yyy 以 v v v 米每分钟的速度匀速走向学校。

在上学的路上,yyy 还要额外花费 10 10 10 分钟的时间进行垃圾分类。

学校要求必须在上午 8:00 \textrm{8:00} 8:00 到达,请计算在不迟到的前提下,yyy 最晚能什么时候出门。

由于路途遥远,yyy 可能不得不提前一点出发,但是提前的时间不会超过一天。

输入格式

一行两个正整数 s , v s,v s,v,分别代表路程和速度。

输出格式

输出一个 24 24 24 小时制下的时间,代表 yyy 最晚的出发时间。

输出格式为 HH:MM \texttt{HH:MM} HH:MM,分别代表该时间的时和分。必须输出两位,不足前面补 0 0 0

样例 #1

样例输入 #1

100 99

样例输出 #1

07:48

提示

对于 100 % 100\% 100% 的数据, 1 ≤ s , v ≤ 1 0 4 1 \le s,v \le 10^4 1s,v104

思路:

先计算出从家走到学校所需要的时间长度,再加上垃圾分类所花费的时间,得到上学前需要的总时间。

然后从8:00开始一分钟一分钟地向前模拟,直到时间为0,这样就得到了最晚出发的时间点。

需要注意的是,这道题有很多坑:

1.当家到学校的路程不能被速度整除时,要提前一分钟,不然就会迟到;

2.需要的时间可能会很长,可能会需要提前一天出发;

3.时间是24小时制的;

4.有十分钟垃圾分类的时间,不要忘了;

5.输出的小时和分钟要输出两位,不足10的时候要补0。

AC Code:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int s,v;
    cin>>s>>v;
    int tim=0;
    if(s%v==0){
        tim+=s/v;
        tim+=9;
    }
    else{
        tim+=s/v;
        tim+=10;
    }
    int hour,mouth;
    hour=7,mouth=59;
    while(tim!=0){
        if(mouth!=0){
            mouth--;
        }
        else{
            if(hour!=0){
                hour--;
                mouth=59;
            }
            else{
                hour=23;
                mouth=59;
            }
        }
        tim--;
    }
    int h1,h2;
    int m1,m2;
    h1=hour/10;
    h2=hour-(10*(hour/10));
    m1=mouth/10;
    m2=mouth-(10*(mouth/10));
    printf("%d%d:%d%d",h1,h2,m1,m2);
    return 0;
}

Accpted:

在这里插入图片描述

友情链接:P5707 【深基2.例12】上学迟到-洛谷|计算机科学教育新生态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值