一道题目

题目如下:
有一500米环形跑道,甲、乙在同一点同向同时起跑,已知甲的速度为60米/分钟,乙的速度为50米/分钟。
且甲、乙跑的过程中每跑200米都要停下休息1分钟。
问:若甲追上乙一圈需要多少时间?

本人比较笨,不擅长分析这种题目。因此首先看看网上有没有方法了,果然找到了:
(http://iask.sina.com.cn/b/3112352.html)
设t为跑的时间
所以t*60=(t+Z)*50+500
t=5Z+50
所以t=60 所以甲走了3600米,所以3600/200=18 最后一次不要停,所以17次休息
t=x-y=60 所以x=60+17=77


写了一个程序来仿真一下
None.gif dt  =  . 0001      # time step
None.gif
s1 = 0     # how long
None.gif
s2 = 0
None.gift
= 0         # current time
None.gif
t1 = 0     # sleep time
None.gif
t2 = 0
None.gifnext1
= 200      # next to sleep
None.gif
next2 = 200
None.gifnextt
= 1
None.gif
while  s1  -  s2 < 500 :
None.gif    t 
+=  dt
None.gif    
None.gif    
if  t1 > 0:     # person A sleeping
None.gif
        t1 -= dt
None.gif    
else :     # not sleep
None.gif
        t1 = 0
None.gif        s1 
+=  dt * 60
None.gif    
None.gif    
if  t2 > 0:     # person B sleeping
None.gif
        t2 -= dt
None.gif    
else :     # not sleep
None.gif
        t2 = 0
None.gif        s2 
+=  dt * 50
None.gif        
None.gif    
if  s1 >= next1  and  t1 == 0:     # person A start to sleep
None.gif
        t1  =   1
None.gif        next1
= s1 + 200
None.gif        
None.gif    
if  s2 >= next2  and  t2 == 0:  # person B start to sleep
None.gif
        t2  =   1
None.gif        next2
= s2 + 200
None.gif    
None.gif    
if  t >= nextt:
None.gif        nextt 
+= 1
None.gif        
print  t,s1, s2
None.gif    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值