题目
源代码
import math
s, v = map(int, input().split())
n = 8 * 60 + 24 * 60 # 两天总共可以走的时间
t = math.ceil(s / v) + 10 # math.ceil向上取整
n = n - t # 得出剩下的时间
if n > 24 * 60: # 判断是否在前一天
n -= 24 * 60
b = n % 60 # 出发的分
a = n / 60 # 出发的时
if a < 10:
if b < 10:
print("0%d:0%d" % (a, b))
else:
print("0%d:%d" % (a, b))
else:
if b < 10:
print("%d:0%d" % (a, b))
else:
print("%d:%d" % (a, b))
解题思路
由于yyy需要当天早上8点前到达,可以提前一天出发,但不能提前超过一天,所以可以计算得出最多需要的时间为n,t为路上需要花费的时间,两者相减即可得到最晚出发时间。
然后对比判断最晚出发时间与24的大小。看是提前一天出发还是当天出发,由于回答不要求显示头一天出发还是当天出发,因此头一天的话直接减去一天的分钟就行。利用除法和取余求得出发的时和分;最后判断时和分是否需要补零来按规范输出。
math.ceil
格式化输出
#1、字符串拼接:使用+进行连接。
#例1
name='夜上夏叶'
age=19
print('My name is'+name+', and my age is '+str(age))
输出结果为:My name is 夜上夏叶, and my age is 19
注意:数字必须通过str()
转换为字符串类型才能进行拼接
#2、占位符:类似C语言的%d、%s等
print("格式化字符串" % 变量1)
print("格式化字符串" % (变量1, 变量2...))
#例2
print('My name is %s, and my age is %d' % (name,age)
print() 函数使用以 % 开头的转换说明符对各种类型的数据进行格式化输出。
转换说明符只是一个占位符(也称为格式化操作符),它会被后面表达式(变量、常量、数字、字符串、加减乘除等各种形式)的值代替。
详见:Python变量的格式化输出
#3、使用字符串中的format方法也可以进行字符串的格式化操作。它的基本语法是通过 {} 和 : 来代替以前的 %。
#1. 通过位置参数
str1 = '{0}的学号是{1},{0}的年龄是{2}。'
print(str1.format('夜上夏叶', 1002, 19))
#2. 通过关键字参数名称
str2 = '{name}的学号是{sno},{name}的年龄是{age}。'
print(str2.format(name = '张三', sno = 1001, age = 20))
#format方法返回的是格式化的字符串副本,并不会改变原字符串内容。
print(str1) #{0}的学号是{1},{0}的年龄是{2}。
print(str2) #{name}的学号是{sno},{name}的年龄是{age}。
#3. 通过对象属性
class Student:
def __init__(self, name, sno, age):
self.name = name
self.sno = sno
self.age = age
s = Student('小明', 2001, 20)
my_str = '{stu.name}的学号是{stu.sno},{stu.name}的年龄是{stu.age}。'
print(my_str.format(stu = s)) #小明的学号是2001,小明的年龄是20。
#4、f'表达式':(f-String格式化)
#例3
print(f"My name is {name}, and my age is {age}")
注意:f可以换成F