题解
分两种情况讨论:
1.当到达路灯时为绿灯
2.当到达路灯时为红灯
第一种情况只需输出总路程除速度
第二种则还要加等待的时间
#include <bits/stdc++.h>
using namespace std;
double l,d,v,g,r;
double t;
int main(){
scanf("%lf%lf%lf%lf%lf",&l,&d,&v,&g,&r);
t=d/v;//到达路灯的时间
while(t>g+r)t=t-g-r;//将时间缩至一个循环内
if(t<g){//判断红/绿
printf("%.8lf\n",l/v);
}else{
printf("%.8lf\n",l/v+(g+r-t));
}
return 0;
}