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