2695:最大商
总时间限制: 5000ms 内存限制: 65536kB
描述
给一组数,前后相邻的两个数相除,输出商最大的两个数及商的值。
输入
第一行为数组中浮点数的个数n,n大于2,其余n行为每一行一个浮点数。
输出
以下面的形式输出结果,前两个数是相除的两个数,最后一个数为最大的商值。
printf("%f / %f = %f\n", a[maxi-1], a[maxi], maxq);
样例输入
10
41.0
18467.0
6334.0
26500.0
19169.0
15724.0
11478.0
29358.0
26962.0
24464.0
样例输出
18467.000000 / 6334.000000 = 2.915535
提示
应使用动态数组保存输入的浮点数。
运算过程中应只使用float类型的浮点数。
来源
计算概论05
问题链接:Bailian2695 最大商
问题简述:(略)
问题分析:最值问题,迭代计算一下,找出最大商。不用数组也是可以实现的。n>=2,保证可以先算出一个商来。这个题需要一个前提,就是所有的数中没有0。
程序说明:(略)
参考链接:(略)
题记:存储空间要能省则省。
AC的C++语言程序如下:
/* Bailian2695 最大商 */
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int n;
float a, b, maxq, d1, d2;
scanf("%d%f%f", &n, &a, &b);
d1 = a, d2 = b;
maxq = d1 / d2;
for(int i = 3; i <= n; i++) {
a = b;
scanf("%f", &b);
if(a / b > maxq) {
maxq = a / b;
d1 = a, d2 = b;
}
}
printf("%.6f / %.6f = %.6f\n", d1, d2, maxq);
return 0;
}
/* 商:Quotient 除数:Divisor 被除数:Dividend*/