题目详情
【深基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 1≤s,v≤104。
代码及坑点
from datetime import datetime
from datetime import timedelta
from math import ceil
s, v = map(int, input().split())
#注意数据的输入格式
time1 = '08:00'
d1 = datetime.strptime(str(time1), '%H:%M')
#一些意想不到的错误,datetime打成datatime了,还以为包哪里出问题了......
t = s / v
hour = int(t / 60)
minute = ceil(t % 60)
#注意以上几个运算的数据类型,t不能存为整型,因为题目问的是最晚出发时间,因此minute要向上取整,如果t存为整型将会导致有轻微误差,AC不了
# print(t," ",hour," ",minute)
result = d1 - timedelta(hours=hour)
result = result - timedelta(minutes=minute+10)
#这里hours和minutes就是会红,不知道为什么,求解答!
print(result.strftime('%H:%M'))
#格式化输出
收获
使用datetime包进行时间运算,不用自己手写代码进行判断,掌握格式化输出的格式
如何一行输入多个整型变量