C/C++编程学习 - 第6周 ③ 班级人数

题目链接

题目描述

某班学生参加程序设计大赛,最后结果及格的人有超过 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;
}

猜你喜欢

转载自blog.csdn.net/qq_44826711/article/details/112911905
今日推荐