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*/