您的位置:首页 > 其它

Uva11059—最大乘积

2017-04-25 23:59 429 查看
 输入n个元素组成的序列S,找出一个乘积最大的连续子序列。如果这个最大的乘积不是正数,输出0(表示无解)。

1<=n<=18,-10<=Si<=10。

样例输入:

3

2 4 -3

5

2 5 -1 2 -1

样例输出:

8

20

#include<cstdio>

int main()
{
int i, j, n, prod, max;
int temp[20];
while (~scanf("%d", &n))
{
max=-10;
for(i=0; i<n; i++)
{
scanf("%d", &temp[i]);
if (max<temp[i])
max=temp[i];
}

for (i=0; i<(n-1); i++)
{
// 每轮更新第一个乘法因子
prod=temp[i];
for (j=i+1; j<n; j++)
{
prod*=temp[j];
if (max<prod)
max=prod;
}
}
printf("%d\n", max);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: