python除了前三个测试点其他一直过不去

P5707 【深基2.例12】上学迟到

xuzhengye @ 2024-01-25 20:46:32

到底哪里出问题啦?

import math
s,v=map(int,input().split())
t=s/v
if t<50:
    b=str(math.floor(50-t)).rjust(2,'0')
    print('07:{}'.format(b))
else:
    T=t-50
    if T<=420:
        m=str(math.floor(60-T%60)).rjust(2,'0')
        while m=='60':
            m='00'
        h=str(7-int(T/60)).rjust(2,'0')
        print("{}:{}".format(h,m))
    elif T>420 and T<=1860:
        m=str(math.floor(60-T%60)).rjust(2,'0')
        while m=='60':
            m='00'
        h=str(24-int(T/60)+7).rjust(2,'0')
        print("{}:{}".format(h,m))
    else:
        print('不符合题意!')

by hyh0174 @ 2024-01-25 21:56:57

其实不用这么麻烦,我有两种做法,你可以借鉴一下

#第一种:用python自带时间计算库datetime
from datetime import timedelta
s,v=map(int,input().split())
t=str(timedelta(hours=8)-timedelta(minutes=s/v+10)).split(':')
try:
    t[0]=t[0].split()[2]
except:
    pass
print('%02d'%(int(t[0]))+':'+'%02d'%(int(t[1])))
#第二种:正常做法
s,v=map(int,input().split())
m=s//v+bool(s%v)+10
print("%02d"%((8-m//60-bool(m%60))%24)+':'+"%02d"%(-m%60))

by Rita12 @ 2024-03-04 21:00:44

@hyh0174 你好,可以请教一下你吗? m=s//v+bool(s%v)+10 print("%02d"%((8-m//60-bool(m%60))%24)+':'+"%02d"%(-m%60))这两句代码是什么含义呀?或者说怎么才能想到这个代码?还有bool()在这里起了什么作用呀?


|