您的位置:首页 > 其它

最大乘积连续子序列

2018-02-27 21:48 736 查看

题目描述

输入n个元素组成的序列S,你需要找出一个乘积最大的连续子序列,如果这个最大乘积不是正数,则输出0。

输入

第一行输入n(1<=n<=9)表示序列的长度,第二行输入n个整数表示序列的元素(-10<=元素<=10)以空格分隔,最后一个数字之后无空格)。

输出

输出结果(结果之后无空格)。

样例输入

32 4 -3

样例输出

8分析:连续子序列有两个要素:起点和终点,因此只需要枚举起点和终点即可。#include<iostream>
using namespace std;
int main()
{
int num[10];
int n,max,sum;
int i,j;
cin>>n;
for(i=0;i<n;i++)
cin>>num[i];
max=num[0]*num[1];
for(i=0;i<n-1;i++){
sum=num[i];
for(j=i+1;j<n;j++){
sum=sum*num[j];
max<=sum?max=sum:max;
}
}
if(max>=0)
cout<<max<<endl;
else
cout<<"0"<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  enumerate