P5707 【深基2.例12】上学迟到(洛谷—python)

题目描述

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

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

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

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

输入格式

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

输出格式

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

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

输入输出样例

输入 #1复制

100 99

输出 #1复制

07:48

说明/提示

对于 100% 的数据,1≤s,v≤104。

import math  # 导入 math 模块,用于数学计算(如向上取整)

# 读取用户输入并按空格分割成列表,然后将列表中的元素转换为浮点数
# 示例输入:"1000 50" → [1000.0, 50.0]
s, v = map(float, input().split())  

# 计算总时间(单位:分钟)
# 路程时间:s / v(向上取整)
# 额外时间:10 分钟(垃圾分类)
t = math.ceil(s / v + 10)  # 示例:1000 / 50 + 10 = 30 分钟

# 计算最晚出发时间(单位:分钟)
# 学校要求到达时间为 8:00(即 480 分钟)
last_come = 480 - t  # 示例:480 - 30 = 450 分钟

# 如果最晚出发时间小于 0,表示需要前一天出发
if last_come < 0:
    last_come += 1440  # 1440 分钟 = 24 小时

# 将最晚出发时间转换为小时和分钟
hours = int(last_come // 60)  # 计算小时数(整除 60)
minutes = int(last_come % 60)  # 计算剩余的分钟数(取余 60)

# 输出最晚出发时间,格式为 "HH:MM"(不足两位补零)
print(f"{hours:02d}:{minutes:02d}")  # 示例输出:07:30

代码功能说明

  1. 输入处理

    • 使用 input().split() 读取用户输入并按空格分割成列表。

    • 使用 map(float, ...) 将列表中的元素转换为浮点数。

  2. 总时间计算

    • 计算路程时间:s / v(向上取整)。

    • 加上额外时间:10 分钟(垃圾分类)。

    • 使用 math.ceil() 确保路程时间向上取整。

  3. 最晚出发时间计算

    • 学校要求到达时间为 8:00(即 480 分钟)。

    • 最晚出发时间 = 480 - 总时间。

    • 如果最晚出发时间小于 0,表示需要前一天出发,因此加上 1440 分钟(24 小时)。

  4. 时间转换

    • 将最晚出发时间(分钟)转换为小时和分钟:

      • 小时数:last_come // 60(整除 60)。

      • 分钟数:last_come % 60(取余 60)。

  5. 输出结果

    • 使用格式化字符串 f"{hours:02d}:{minutes:02d}" 输出时间,格式为 "HH:MM"(不足两位补零)。

**“如果这篇文章对你有帮助,请点个赞支持一下!你的每一个点赞和评论,都是我继续分享的动力~”**

- **“感谢每一位阅读到这里的朋友!如果觉得有用,请点个赞或留个评论,让我知道你的想法~”**

- **“你们的支持是我最大的动力!如果这篇文章对你有帮助,别忘了点赞和评论哦~”**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雲中203

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值