暴力求解法 最大乘积
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;
}
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;
}
相关文章推荐
- uva725除法uva11059最大乘积uva10976分数拆分(暴力求解法)
- 算法竞赛入门 暴力求解法 7.1.2 最大乘积
- 算法竞赛入门经典:第七章 暴力求解法 7.2最大乘积
- 算法竞赛入门经典 暴力求解法 7.1简单枚举 最大乘积
- BZOJ3571【最小乘积最大匹配】
- 拼多多笔试题一:给出一个无序整数数组,求任意三个数的最大乘积
- 2017.8.1拼多多内推内推笔试题(1)—最大乘积的求取(分治求K大(小))
- 最大K乘积问题
- 数,各位上的数最大值和最小值的乘积
- 子数组的最大乘积
- ACMjava简单枚举除法,分数拆分,双基回文数,最大乘积
- 蓝桥杯算法提高——最大乘积
- 最大K乘积问题
- 笔试面试算法经典--连续子数组的最大乘积及连续子数组的最大和(Java)
- 输出正整数分解的所有数的最大乘积
- 编程之美之"子数组的最大乘积"
- PAT 1096. Consecutive Factors (20)(最大连续乘积因子)(sqrt(n)判断一个数是否为质数的深刻理解)
- 百练 4021:最大乘积 枚举
- NOIP 2000普及组 乘积最大 详解
- [noip2000tg] 乘积最大