Bailian2695 最大商

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*/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章