http://acm.nyist.net/JudgeOnline/problem.php?pid=97
描述 兄弟俩骑车郊游,弟弟先出发,每分钟X米,M分钟后,哥哥带一条狗出发。以每分钟Y米的速度去追弟弟,而狗则以每分钟Z米的速度向弟弟跑去,追上弟弟后又立即返回,直到哥哥追上弟弟时,狗跑了多少米?-
输入
第一行输入一个整数N,表示测试数据的组数(N<100)
每组测试数据占一行,是四个正整数,分别为M,X,Y,Z(数据保证X<Y<Z)
-
输出
输出狗跑的路径,结果保留小数点后两位。
解题思路:
要求狗跑的路径,猛一看时或许会没有思路。但结合路径公式:s=v*t ,我们会发现狗的速度v已经知道,要求s,我们只需知道所用时间t即可。
到这一步问题就简单清晰了。我们发现,M分钟后,兄弟二人和狗行走的时间是一样的 !
哥哥追上弟弟时,路径差为X*M。因此有X*M=Y*t-X*t。问题得解。
需要注意的是:
1、时间有可能会是小数,求解时要转化,简单乘以1.0即可。
2、注意输出格式,保留两位小数。
#include<stdio.h>
int main()
{
int N;
int M,X,Y,Z;
scanf("%d",&N);
double len;
while(N--){
scanf("%d%d%d%d",&M,&X,&Y,&Z);
len=1.0*X*M*Z/(Y-X);
printf("%.2lf\n",len);
}
return 0;
}