7.1.2 最大乘积

来源:互联网 发布:中国移动网络加速器 编辑:程序博客网 时间:2024/06/06 03:28
7.1.2  最大乘积
    输入n个元素组成的序列S,你需要找出一个乘积最大的连续子序列。如果这个最大的乘积不是正整,应输出-1(表示无解)。1≤n≤18,-10≤Si≤10。
样例输入:
3
2 4 -3
5
2 5 -1 2 -1
样例输出:
8

20

 挺简单的题,说说问题吧,1.题目没看完整,要求负数输出-1,2.模拟是不止两个数相乘.

                                       3.用long   long

                                       4.又忘记max初始化了;


#include<iostream>using namespace std;int main(){int n;while(cin>>n){int a[20];for(int i=0;i<n;i++){cin>>a[i];}long long sum=1,max=-1000000;for(int i=0;i<n;i++){sum=a[i];for(int j=i+1;j<n;j++){sum=sum*a[j];if(sum>max)max=sum;}}if(max>0)    cout<<max<<endl;elsecout<<-1<<endl;max=-10000000;}}


0 0
原创粉丝点击