题目描述
队伍长度为L米,并匀速前进。传令兵以匀速,先从队尾跑到队头,再从队头跑回队尾,期间队伍行进了S米。请问传令兵一共跑了多少米?
输入有多个样例。每行输入两个整数L(1 ≤ L ≤ 10,000),S(1≤S≤10,000)。如果L和S都为0则表示输入结束,这个样例不需要处理。
输出
每行输出一个样例的结果,保留2位小数。
样例输入
300 400
100 100
0 0
样例输出
800.00
241.42
解题思路
列方程求解即可。
根据传令兵与队伍运动时间相等可列出方程。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
double l,s;
double result;
while(scanf("%lf%lf",&l,&s)&&(l+s)){
result = l+sqrt(l*l+s*s);
printf("%.2lf\n",result);
}
return 0;
}