c语言 【问题描述】 甲,乙两人要同时从A地出发要尽快同时赶到B地.出发时A地有一辆小车,可是这辆小车除了驾驶员外只能带一人.已知甲,乙两人的步行速度一样,且小于车的速度.问:怎样利用
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/25 13:55:31
c语言 【问题描述】 甲,乙两人要同时从A地出发要尽快同时赶到B地.出发时A地有一辆小车,可是这辆小车除了驾驶员外只能带一人.已知甲,乙两人的步行速度一样,且小于车的速度.问:怎样利用
c语言
【问题描述】
甲,乙两人要同时从A地出发要尽快同时赶到B地.出发时A地有一辆小车,可是这辆小车除了驾驶员外只能带一人.已知甲,乙两人的步行速度一样,且小于车的速度.问:怎样利用小车才能使两人尽快同时到达.
【输入】
仅一行,三个数据分别表示AB两地的距离s,人步行的速度a,车的速度b.
【输出】
两人同时到达B地需要的最短时间.
【样例】
car.in
120 5 25
car.out
9.6000000000E+00
【算法提示】
甲先乘车到达K处后下车步行,小车再回头接已走到C处的乙,在D处相遇后,乙再乘车赶往B地,最后甲,乙一起到达B地.这样问题就转换成了求K处的位置,我们用二分法,不断尝试,知道满足同时到达的时间精度.算法框架如下:
(1)输入s,a,b;
(2)c0=0;c1=s;c=(c0+c1)/2;
(3)求t1,t2;
(4)如果t1
c语言 【问题描述】 甲,乙两人要同时从A地出发要尽快同时赶到B地.出发时A地有一辆小车,可是这辆小车除了驾驶员外只能带一人.已知甲,乙两人的步行速度一样,且小于车的速度.问:怎样利用
#include
#include
void main()
{
float s,a,b;
printf("输入AB两地距离:\n");
scanf("%f",&s);
printf("输入人的步行速度:\n");
scanf("%f",&a);
printf("输入车的行驶速度:\n");
scanf("%f",&b);
float t1=0,t2=0;
float k1=0,k2=s,k=0;
do{
k=(k1+k2)/2;
t1=k/b+(s-k)/a;
t2=k/b+k/(a+b)+(s-a*(k/b+k/(a+b)))/b;
if (t11);
printf("甲在该位置换为步行最佳:\n");
printf("%f\n",k);
}