最大乘積連續子序列
阿新 • • 發佈:2019-01-23
題目描述
輸入n個元素組成的序列S,你需要找出一個乘積最大的連續子序列,如果這個最大乘積不是正數,則輸出0。
輸入
第一行輸入n(1<=n<=9)表示序列的長度,第二行輸入n個整數表示序列的元素(-10<=元素<=10)以空格分隔,最後一個數字之後無空格)。
輸出
輸出結果(結果之後無空格)。
樣例輸入
32 4 -3樣例輸出
8分析:
連續子序列有兩個要素:起點和終點,因此只需要列舉起點和終點即可。
#include<iostream> using namespace std; int main() { int num[10]; int n,max,sum; int i,j; cin>>n; for(i=0;i<n;i++) cin>>num[i]; max=num[0]*num[1]; for(i=0;i<n-1;i++){ sum=num[i]; for(j=i+1;j<n;j++){ sum=sum*num[j]; max<=sum?max=sum:max; } } if(max>=0) cout<<max<<endl; else cout<<"0"<<endl; return 0; }