解题思路:
首先用一个数组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分
8 人评分
钟神赛车 (C语言代码)浏览:911 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:1067 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:623 |
钟神赛车 (C++代码)浏览:905 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:553 |
兰顿蚂蚁 (C++代码)浏览:1225 |
【出圈】 (C语言代码)浏览:824 |
A+B for Input-Output Practice (IV) (C语言代码)浏览:484 |
C语言训练-大、小写问题 (C语言代码)浏览:792 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:822 |