最大乘积 简单枚举 暴力啊
输入n个元素组成的序列S,你需要找出一个乘积最大的连续子序列.如果这个最大的乘积不是正数,应输出-1(表示无解).1<=n<=18,-10<=Si<=10.
利用了求最长回文子串的思想::嘻嘻移花接木了 #include<iostream> #include<stdio.h> using namespace std; void chengji(int n,int a[18]) { int i,j,k,s=1,max=0; for(i=0;i<n;i++) for(j=n-1;j>=i;j--) { s=1; for(k=i;k<=j;k++) { s=s*a[k];//开始写成了a[i],结果调试了半天也找不到错误,所以不可以粗心的。 } if(max<s)max=s; } if(max>0) cout<<max<<endl; else cout<<'-1'<<endl; } int main() { int n,i,a[18]={0}; while(scanf("%d",&n)==1) { for(i=0;i<n;i++) cin>>a[i]; chengji(i,a); } return 0; }
浙公网安备 33010602011771号