1275 两车追及或相遇问题.cpp
来自「威士忌的HDU题解.大概有260多题的源码。对于学习非常有好处。」· C++ 代码 · 共 50 行
CPP
50 行
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{ int n,m,m1,m2;
double dis,va,vb,time,dist,t1,t2;
scanf("%d",&n);
while(n--)
{ scanf("%lf%lf%lf%d",&dis,&va,&vb,&m);//默认va>=vb
m1=1;m2=1;
if(va==vb)
{
dist=(m*2-1)*dis;
time=dist/(va+vb);
}
else
{
while(m--)
{
t1=dis*m1/(va+vb);
t2=dis*m2/(va-vb);
if(t1<t2)
{
m1+=2;
time=t1;
}
else if(t1>t2)
{
m2+=2;
time=t2;
}
else
{
m1+=2;
m2+=2;
time=t1;
}
}
}
dist=time*va;
dist=dist-int(dist/dis)*dis;
if(dist > dis-dist)
printf("Time=%.3lf Dist=%.3lf\n",time,dis-dist);
else
printf("Time=%.3lf Dist=%.3lf\n",time,dist);
}
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?