蓝桥杯龟兔赛跑预测Python
问题描述(简单描述)
龟兔赛跑,跑道长l米,如果兔子比乌龟快t米,兔就会停下来休息s秒,有一者到达终点则停止比赛。
兔子速度为v1,乌龟速度为v2,输入v1、v2、t、s、l,输出谁赢,与所用时间。兔子赢:输出R,乌龟赢,输出T,都赢:输出D。
问题分析
1.这是一个循环+判断问题。循环去判断s1、s2、l的大小关系,并且,循环一次,time+=1。(time为最后要输出的所用时间)则可以想到可以使用while True与if、elif结构。
2.先不考虑兔子会停下来的部分,有3种情况:s1>s2=l、s2>s1=l、s1=s2=l 。(注意:在实际写代码的过程中,要使用“==”)
3.遇到s1-s2=t时,s1的值不变,s2的值每次递增v2,递增s次。但是在s2递增的时候,可能会出现s2=l的情况,即在兔子休息时,乌龟到达终点。(注意:进入s1-s2>t的情况时,兔子不可能赢)
Python代码
v1,v2,t,s,l=map(int,input().split())
s1=0
s2=0
time=0
while True:
if s1-s2>=t:
for i in range(s):
s1=s1
s2+=v2
time+=1
if s2==l:
print('T')
print(time)
break
else:
s1+=v1
s2+=v2
time+=1
if s1>s2==l:
print('R')
print(time)
break
elif s2>s1==l:
print('T')
print(time)
break
elif s2==s1==l:
print('D')
print(time)
break
说明
1.要注意使用break.
2.本人为小白,若有错误,欢迎大家指出!