题目描述
甲、乙两人同时从A地出发要尽快同时赶到B地。出发时A地有一辆小车,可是这辆小车除了驾驶员外只能带一人。已知甲、乙两人的步行速度一样,且小于车的速度。问:怎样利用小车才能使两人尽快同时到达。
输入输出格式
输入格式:
仅一行,三个数据分别表示AB两地的距离s,人的步行速度a,车的速度b。
输出格式:
两人同时到达B地需要的最短时间,保留6位小数。
输入输出样例
输入样例#1:
120 5 25
输出样例#1:
9.600000
小学数学行程问题。
一个人先走,一个人乘车,中途后者下车步行,车返回去接另一个人,最终两个人同时到终点,用时最短。
设x表示在距离终点x单位远时让车折返,
得(s-x)/a=2*(2*x/(a+b)-x/b)+(s-x)/b
化简得x=(b+a)*s/(b+3a)
算时间即可。
顺便学了一下cout控制精度。
/*by SilverN*/
#include<iostream>
#include<iomanip>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<cmath>
double s,a,b,x;
using namespace std;
int main(){
cin>>s>>a>>b;
x=(a+b)*s/(b+*a);
x=(x/b)+(s-x)/a;
cout<<setiosflags(ios::fixed);
cout<<setprecision()<<x<<endl;
}