题目描述
假设张家界景区的游客抵达检票口的速度是恒定的。某国庆长假日清晨景区开门时检票口已积聚了一定数量的游客,且随时间流逝,不断有新的游客抵达。如果打开8个检票口,m分钟刚好可以完成全部游客的检票放行;如果使用6个检票口,则需要n (n>m)分钟才能完成。请编程计算:如果使用10个检票口,需要多少时间才能将景区入口的待检票人数清零?
【分析】
这是小学奥数中著名的“牛吃草”问题。现假设每个检票口每分钟可以完成1份游客的检票放行任务。设景区开门时积聚的游客数量为x份,设每分钟有y份游客抵达检票口。然后列出方程组,根据方程组求解x,y。
然后,设使用10个检票口时,需要z分钟清零,根据x,y列方程,求出z。
输入格式:
m
n
说明:m,n为整数且n>m,且该输入确保问题有解。
输出格式:
原有排队游客份数:A, 每分钟新到游客份数:B, 10口同开需C分钟清零待检票游客.
说明:A, B, C均为保留1位小数的浮点数。
输入样例:
180
300
输出样例:
Original number of visitors: 900.0
New arriavlas per minute: 3.0
Check time when 10 gates are opened: 128.6
注意:从数学角度上看,900.0, 30.0均为份数,不是游客人数。
#include <iostream>
#include<iomanip>
using namespace std;
int main()
{
int m, n;
cin >> m >> n;
float x, y, z;
if (n > m)
{
y = (6.0*n - 8.0*m) / (n - m);
x = 2.0*m*n / (n - m);
z = x / (10.0 - y);
}
cout << "Original number of visitors: " << fixed << setprecision(1) << x << endl;
cout << "New arriavlas per minute: " << fixed << setprecision(1) << y << endl;
cout << "Check time when 10 gates are opened: " << fixed << setprecision(1) << z << endl;
return 0;
}