輸入n個元素組成的序列s,你需要找出一個乘積最大的連續子序列

博巖。發表於2020-10-05

#include <iostream>
using namespace std;
const int N = 18;

int max(int a,int b)
{
    return a>b?a:b;
}

int main(void)
{
    int t = 0;
    int n, a[N];

    while (scanf("%d",&n)!= EOF && n) {
        for (int i = 0; i < n; i ++)
            scanf("%d", &a[i]);

        long res = a[0];
        for (i = 0; i < n; i ++) {
            long int mult = 1;
            for (int j = i; j < n; j ++) {        //關鍵語句,遍歷所有的序列
                mult *= a[j];
                res = max(mult, res);
            }
        }
        if (res < 0) res = 0;
        printf("Case #%d: The maximum product is %lld.\n\n", ++t, res);
    }

    return 0;
}

相關文章