UVA

来源:互联网 发布:淘宝男士 编辑:程序博客网 时间:2024/06/05 19:09

拿到这道题时,没仔细看题,被WA了好几次,就很纳闷怎么就错了呢???后来才发现,不是求子序列最大乘积而是求最大乘积
乘积很好写,两个for循环就行了。直接暴解,时间够用。
要注意一点:数字想乘如果用int可能会溢出 保险起见用long long 类型

#include<bits/stdc++.h>using namespace std;int main(){    int ma[25];  // 数组开的大一点,个人习惯    int n;int k=0;    while(cin>>n)    {        long long ans=-99;        for(int i=0;i<n;i++)        {            cin>>ma[i];        }        for(int i=0;i<n;i++)        {            long long sum=1;            for(int j=i;j<n;j++)            {                sum*=ma[j];                ans=max(ans,sum);            }        }        if(ans<0)            ans=0;        cout<<"Case #"<<++k<<": The maximum product is "<<ans<<"."<<endl<<endl;    }}