题目描述
输入n个元素组成的序列s,找出一个乘积最大的连续子序列,输出最大乘积的值。如果这个最大乘积不是正数,输出0。n小于18,每个元素值的绝对值不大于10。
输入
先输入n的值,再依次输入n个数的序列,遇到文件末尾结束。
输出
在一行输出最大乘积的值。
样例输入
5
2 5 -1 2 -1
样例输出
20
参考代码
#include<stdio.h>
int main()
{
int n,cj=1,i,j,max=-1;
int a[100];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
cj=1;
for(j=i;j<n;j++)
{
cj=cj*a[j];
if(cj>max) max=cj;
}
}
if(max<0) printf("0");
else printf("%d",max);
return 0;
}