解题思路:
1.将普通金属记录放进数组之后,我们依次求出每个记录冶炼出特殊金属需要普通金属的个数,因为需要满足所有的记录条件,所有记录里面的最小值就是它们共同需要的最大值。
2.求最小值只需要从最大值开始for依次递减即可,不满足条件就break退出,将此时的最小值加上一个1表示上一次循环才是符合所有条件的最小值。
参考代码:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
int main()
{
long long count = 0;
scanf("%lld", &count);
long long material[count];
long long x[count];
long long max = 999999999, min = 0;
for (int i = 0; i < count; i++)
{
scanf("%lld %lld", &material[i], &x[i]);
}
for (int j = 0; j < count; j++)
{
max = fmin(max, material[j] / x[j]);
}
int flag = 0;
for (int k = max - 1; k > 0; k--)
{
if (flag == 1)
{
break;
}
for (int m = 0; m < count; m++)
{
if (material[m] / k != x[m])
{
min = k + 1;
flag = 1;
break;
}
}
}
printf("%lld %lld", min, max);
return 0;
}
0.0分
5 人评分
最长单词 (C语言代码)浏览:1377 |
简单的a+b (C语言代码)浏览:632 |
C语言程序设计教程(第三版)课后习题6.3 (C++代码)浏览:963 |
C语言考试练习题_一元二次方程 (C语言代码)浏览:576 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:678 |
1113题解浏览:789 |
2006年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:669 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:617 |
最好的,浏览:564 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:573 |