进阶版Python编程题(1)洛谷

题目描述

学校和 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”,这样才符合题意。

谢谢您的观看!希望对您能有帮助。

  • 15
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值