版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31650113/article/details/59671544
难受,WA了很多次,代码能力太差。
数据不大,枚举起始和结束位置累乘就好了。
https://vjudge.net/problem/UVA-11059
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int n,t=1,num[20];
long long maxx=0,cnt;
while(scanf("%d",&n)!=EOF&&n){
for(int i=0;i<n;i++)
scanf("%d",&num[i]);
maxx=0;
for(int i=0;i<n;i++)
{
for(int j=i;j<n;j++)
{
cnt =1;
for(int k=i;k<=j;k++)
cnt*=num[k];
maxx=max(maxx,cnt);
// printf("%lld\n",cnt);
}
//printf("%lld",maxx);
}
printf("Case #%d: The maximum product is %lld.\n\n",t++,maxx);
}
return 0;
}