题目描述
学校和 yyy 的家之间的距离为 s 千米,而 yyy 以 v 米每分钟的速度匀速走向学校。
在上学的路上,yyy 还要额外花费 10 分钟的时间进行垃圾分类。
学校要求必须在上午 8:00 到达,请计算在不迟到的前提下,yyy 最晚能什么时候出门。
由于路途遥远,yyy 可能不得不提前一点出发,但是提前的时间不会超过一天。
输入格式
一行两个正整数 s,v,分别代表路程和速度。
输出格式
输出一个 24 小时制下的时间,代表 yyy 最晚的出发时间。
输出格式为 HH:MM,分别代表该时间的时和分。必须输出两位,不足前面补 0。
代码如下:
from math import*
s,v=map(int,input().split())
t=ceil(s/v)#插入向上取整函数,因为这个问题是求最晚时间,所以宁可取多也不能取少
t+=10
#
if t<480:
#防止答案时间在0点之前
tt=(8*60-t)
else:
tt=(8*60-t+24*60)
#这里也可将这两步替换为tt = (8 * 60 + 24 * 60 - t)%(24*60)
h=tt//60
m=tt-60*h
if len(str(h))==1:
h='0'+str(h)
#如果写道这个位置因该写成m%60,因为在上面处理h的过程可能将h变为字符串格式。
if len(str(m))==1:
h='0'+str(m)
print(str(h)+":"+str(m))
我们在这里首先导入math库,借助ceil()函数来向上求取整数,因为题目要求的是求出最晚时间,所以我们若使用向下取整函数int()不合适,并且在最后我会插入math库的基本函数图片。然后我们在判断时间到底在那一部分--是在0点之前还是在之后,所以我们在此插入if与else判断语句,若你嫌麻烦也可直接#这里也可将这两步替换为tt = (8 * 60 + 24 * 60 - t)%(24*60),这样不管在0点之前还是在之后,我们都可以得到我们想要的答案,在此补充一下如果a%b,若前者小于后者,则输出的还是a,若a大于b输出的是余数。最后我们还要判断小时和分钟的大小,如果长度为1或者值小于10都要化成字符串格式然后在前面加上“0”,这样才符合题意。
谢谢您的观看!希望对您能有帮助。
标签:24,输出,洛谷,进阶,Python,yyy,60,最晚,math From: https://blog.csdn.net/2301_80570929/article/details/137440602