题目描述
某班学生参加程序设计大赛,最后结果及格有超过P%但不足Q%的人。现在给你P和Q,你要算出该班最少有多少人。(数据弱了一点,所以好通过)。
输入
两个实数P,Q。用空格隔开。每个数最多有两位小数。0.00<=p<q<=99.99
输出
班级最少的人数。
思路:
首先设班级总人数为m,及格的人数为n,那么m*P%一定小于n,m*Q%一定大于n,而n一定是一个整数,所以想求最小m,则一定在m*P%与m*Q%只存在一个整数n,即对m*P%和m*Q%取整,两者相差为1时的m为最小班级总人数。
代码:
#include <iostream>
using namespace std;
int main()
{
double P, Q;
int m;
while (cin >> P >> Q)
{
for (m = 1;; m++)
{
if (int(m * Q / 100) - int(m * P / 100) == 1)
{
cout << m << endl;
break;
}
}
}
return 0;
}