标签:uva
输入n个元素组成的序列S,你需要找出一个乘积最大的连续子序列。如果这个最大的乘积不是正数,应输出0(表示 无解)。
1<=n<=18,-10<=si<=10.
样例输入:
3
2 4 -3
5
2 5 -1 2 -1
样例输出:
8
20
思路: 枚举第一个和最后一个
#include<iostream> #include<cstdio> using namespace std; int main() { int n,m,i,j; int a[20],cse=0; while(scanf("%d",&n)!=EOF&&n) { for(i=0;i<n;i++) scanf("%d",&a[i]); int k; long long ans=0; for(i=0;i<n;i++)//枚举第一个和最后一个 { long long sum=1; for(j=i;j<n;j++) { sum=sum*a[j]; if(sum>ans) ans=sum; } } printf("Case #%d: The maximum product is %lld.\n\n",++cse,ans); } return 0; }
标签:uva
原文地址:http://blog.csdn.net/u012346225/article/details/44227931