文章目录
题目描述
学校和 yyy 的家之间的距离为 s 米,而 yyy 以 v 米每分钟的速度匀速走向学校。
在上学的路上,yyy 还要额外花费 10 分钟的时间进行垃圾分类。
学校要求必须在上午 8:00 到达,请计算在不迟到的前提下,yyy 最晚能什么时候出门。
由于路途遥远,yyy 可能不得不提前一点出发,但是提前的时间不会超过一天。
输入格式
一行两个正整数 s,v,分别代表路程和速度。
输出格式
输出一个 24 小时制下的时间,代表 yyy 最晚的出发时间。
输出格式为 HH:MM,分别代表该时间的时和分。必须输出两位,不足前面补 0。
输入输出样例
输入
100 99
输出
07:48
说明/提示
对于 100% 的数据,1≤s,v≤10^4
分析:
同时输入两个整数,用map+split()组合。
公式:时间=路程/速度
用现有时间-需要花的时间,但这里是hh:mm的格式,要进行转换。注意的是,这里允许提前一天。
方法一:先判断目前花费的时间是否大于8小时,小于8小时,且时间%60==0,刚好是整个小时,mm=0,hh=8-时间//60。若不满一个小时,则mm=60-时间%60,hh=8-时间//60-1。
如果大于8小时,计算时要先去掉当天的8小时。时间%60==0,刚好是整个小时,mm=0,hh=24-(时间//60-8)。若不满一个小时,则mm=60-时间%60,hh=24-(时间//60-8)-1。
最后格式化输出,结果是整数。保留2位,即宽度为2。不足0替代,即%02d
s,v=map(int,input().split())
t=s/v+10#所需时间
if t/60<=8:#所需时间小于8,当天出发
if t%60==0:#整个小时
h=8-t/60
m=0
else:#不整
h=8-t//60-1
m=60-t%60
else:#所需时间大于8,提前一天出发
if t%60==0:
h=24-t/60+8#提前一天出发,所花时间要先去掉当天的8小时。
m=0
else:
h=24-t//60-1+8
m=60-t%60
print("%02d:%02d"%(h,m))
方法二:算出来前一天和当天8小时一共多少分钟。再算所需要花的时间,也转换成分钟。相减得到剩下的时间。
总剩下的大于2460,就不用提前一天,当天剩下的时间就=总剩下时间-2460
总剩下的小鱼24*60,要提前一天。
剩下的时间%60就是分钟,//60就是时钟。
s,v=map(int,input().split())
t=s/v+10
n=(8+24)*60
n=n-t #剩下的时间
if n>24*60: #不用提前一天
n=n-24*60 #当天剩下的时间
h=n//60
m=n%60
print("%02d:%02d"%(h,m))
已验证:两中国方法都可accepted。