关键在于对题意的理解,题中所给的范围是在P与Q之间,设人数为num,只要num不为0,num*P*0.01就一定是小于num*Q*0.01的,但是此处num有一个特殊的要求就是num必须为整数,因为num是人数,就涉及到强制转化的内容。
(int)num*P*0.01<(int)num*Q*0.01的时候就是这个整数num符合要求的时候
num的数量由循环开始不断加,直到试出符合条件的num
最重要的点在于num是一个整数,需要利用强制转化来实现对二者的比较,PQ就相当于是一个区间,符合(int)num*P*0.01<(int)num*Q*0.01条件的num都可以是学生的人数,但是此处对于num的要求是最少的人数
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int N = 0;
scanf("%d", &N);
while (N != 0)
{
N--;
double Q = 0, P = 0;
scanf("%lf %lf", &P, &Q);
int num = 0;
for (num; num >= 0; num++)
{
if ((int)(num * P * 0.01) < (int)(num * Q * 0.01))
{
break;
}
else
{
num++;
}
}
printf("%d\n", num);
}
}
题不难,但是题目说的比较难懂