求乘积最大的连续子序列,如果最大的乘积为负数,则输出0;
由于这题数据很水就直接暴力了
AC代码
#include<cstdio>
const int maxn=20;
int main(void)
{
int n;
long long maxt;
int cnt=0;
while(scanf("%d",&n)==1)
{
++cnt;
maxt=-1;
int a[maxn];
for(int i=0;i<n;++i)
{
scanf("%d",&a[i]);
}
for(int i=0;i<n;++i) //起点
for(int j=i;j<n;++j) //终点
{
long long temp=1;
for(int k=i;k<=j;++k)
temp*=a[k];
if(maxt<temp)
maxt=temp;
}
if(maxt<0)
maxt=0;
printf("Case #%d: The maximum product is %lld.\n",cnt,maxt);
printf("\n");
}
return 0;
}
如有不当之处欢迎指出!