您的位置:首页 > 其它

暴力求解法 最大乘积

2013-03-06 23:31 120 查看
题目是输入n个元素的序列,找出一个乘积最大的连续子序列。如果不是正数则输出-1.n<18,-10<s<10

input:

3

2 4 -3

output

8

代码附下:

//Author ChenXingman http://blog.csdn.net/Carp_and_Wind 2013.3.6

#include <stdio.h>

int input[20];

long long int solve(int i,int j)

{

long long int sum=1;

for(int l=i;l<=j;l++)

sum=sum*input[l];

return sum;

}

int main(int argc, char *argv[])

{

int num;

long long int temp=-10;

long long int sum=1;

while(scanf("%d",&num)==1)

{

for(int loop=0;loop<num;loop++)

scanf("%d",&input[loop]);

for(int i=0;i<num;i++)

{

for(int j=i;j<num;j++)

{

sum=solve(i,j);

if(sum>temp)

temp=sum;

}

}

if(temp<=0)printf("-1\n");

else printf("%lld\n",temp);

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: