解题思路:
    首先用一个数组r[10000][2]来记录所有的从 普通金属 转换为 特殊金属 的记录,使用v[10000]数组来记录所有的 转换率 。


    可以发现,所有的转换率记录中最小的一个转换率记录就是 符合条件的 最大的 转换率记录。

    我们可以用maxv来保存v[0]的记录再通过遍历的方法比较找出最小的v记录保存在maxv当中。


    而后我们可以通过两层的for循环,外层从i=maxv开始依次递减一 以flag为结束标识(flag初值为1),内层通过  r[j][0]/i!=r[j][1]  来遍历所有的转换记录若有i代入后结果不符合记录则将标识flag=0并break,如果当前i符合所有的r记录则将minv更新成这个i。跳出循环后minv保存的就是最小的转换率-1的结果。所以输出时要将minv+1。

注意事项:

参考代码:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
	int n,v[10000],maxv,minv,i,j,r[10000][2],flag=1;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d%d",&r[i][0],&r[i][1]);
		v[i]=r[i][0]/r[i][1];
	}
	maxv=minv=v[0];
	for(i=0;i<n;i++)
	{
		if(v[i]<maxv)
		{
			maxv=v[i];
		}
	}
	for(i=maxv;flag;i--)
	{
		for(j=0;j<n;j++)
		{
			if(r[j][0]/i!=r[j][1])
			{
				flag=0;
				break;
			}
		}
		minv=i;
	}
	printf("%d %d",minv+1,maxv);
	return 0;
}
点赞(0)
 

0.0分

4 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论