题目描述
计算一个序列中最大的连续相乘的乘积,结果为负输出0.
输入
有多组测试数据,每组输入占两行。第一行输入一个整数N,第二行输入N个整数ai
1<=N<=18, -10<=ai<=10
输出
输出一个整数,表示一个序列中最大的连续相乘的乘积,结果为负输出0.
样例输入 Copy
3
4 5 -2
5
3 6 -1 2 -1
2
-1 2
1
-10
样例输出 Copy
20
36
2
0
代码如下:
#include<stdio.h>
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int a[n];
int i;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
int j;
int b=0;
for(i=0;i<n;i++)
{
int w=1;
for(j=i;j<n;j++)
{
w*=a[j];
if(w>b)
{
b=w;
}
}
}
printf("%d\n",b);
}
}
在这里插入代码片