洛谷题单1-P5707 【深基2.例12】上学迟到-python-流程图重构
题目描述
学校和 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。
输入输出样例
输入
100 99
输出
07:48
说明/提示
对于 100 % 100\% 100% 的数据, 1 ≤ s , v ≤ 1 0 4 1 \le s,v \le 10^4 1≤s,v≤104。
方式-整数向上取整算法
代码
class Solution:
@staticmethod
def oi_input():
"""从标准输入读取数据"""
s, v = map(int, input().split())
return s, v
@staticmethod
def oi_test():
"""提供测试数据"""
return 100, 99
@staticmethod
def solution(s, v):
'''向上取整'''
walk_time = (s + v - 1) // v # 向上取整计算步行时间
total_time = walk_time + 10 # 加上10分钟
# 计算出发时间的分钟数,并处理负数情况
start_minutes = (8 * 60 - total_time) % (24 * 60) # 通过模运算实现控制 如果是负数就会取模到最高边界附近
# 格式化输出,确保两位显示
print(f"{start_minutes // 60:02d}:{start_minutes % 60:02d}")
oi_input = Solution.oi_input
oi_test = Solution.oi_test
solution = Solution.solution
if __name__ == '__main__':
s, v = oi_test()
#s, v = oi_input()
solution(s, v)