题目描述
某班学生参加程序设计大赛,最后结果及格的人有超过 p% 但不足 q% 的人。现在给你 P 和 Q,你要算出该班最少有多少人。
输入格式
输入两个实数 p,q,用空格隔开,每个数最多有两位小数,且 0.00 ≤ p < q ≤ 99.99。
输出格式
输出该班最少可能的人数。
Sample Input
13 14.1
Sample Output
15
Sample Input 2
67.73 67.92
Sample Output 2
28
思路
当大的百分比减去小的百分比为一个人占的百分比时,班级总人数最少。当明白了这点时,离解决问题就很近了。
C语言代码:
#include<stdio.h>
int main()
{
double p, q;
int i;
scanf("%lf%lf", &p, &q);
for(i = 1; ; i++)//用i模拟班级总人数,大的百分比乘人数-小的百分比乘人数如果近似等1则此时i为最少班级人数
if((int)(i * q / 100.0) - (int)(i * p / 100.0) == 1)//强制类型转换,只需要用括号将你要转换的类型扩起来,放在要转换的变量前面即可。
{
printf("%d", i);
break;
}
return 0;
}
C++代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
double p, q;
while(cin >> p >> q)
{
for(int i = 1; i < 100000; i++)
{
int a = i * 1.0 / 100 * p;
int b = i * 1.0 / 100 * q;
if(b - a == 1)
{
cout << i << endl;
break;
}
}
}
return 0;
}