最大乘积----简单枚举
2014-03-11 20:33
183 查看
输入n个元素组成的序列S,你需要找出一个乘积最大的连续子序列。如果这个最大的乘积不是正整,应输出-1(表示无解)。
1≤n≤18,-10≤Si≤10。
样例输入:
3
2 4-3
5
2 5-1 2 -1
样例输出:
8
20
代码如下:
#include <stdlib.h>
int main()
{
int max(int *z,int n);
int a[18];
int n,m;
scanf("%d",&n);
int *p;
for (p=a;p<a+n;p++)
scanf("%d",p);
m=max(a,n);
for (p=a;p<a+n;p++)
{
if ( max(p,n)>m )
m=max(p,n);
}
if (m<0)
printf("-1\n");
else
printf("%d\n",m);
return 0;
}
int max(int *z,int n)
{
int i,*p;
int max=0,m=1;
for(i=1;i<n;i++)
{
m=1;
for(p=z;p<=z+i;p++)
m*=(*p);
if (m>=max)
max=m;
}
return max;
}
c++代码如下:
#include<iostream>
#include<string.h>
#include<stdio.h>
#include<ctype.h>
#include<algorithm>
#include<stack>
#include<queue>
#include<math.h>
using namespace std;
int a[30];
int i,j;
int main()
{
int n;
int w;
long long ans;
while(scanf("%d",&n)!=EOF)
{
for(i=0; i<n; i++)
scanf("%d",&a[i]);
ans=0;
for(i=0; i<n; i++)
{
w=1;
for(j=0; j<n; j++)
{
w*=a[j];
if(w>ans)
ans=w;
}
}
if(ans>=0)
printf("%d\n",ans);
else
printf("-1\n");
}
return 0;
}
1≤n≤18,-10≤Si≤10。
样例输入:
3
2 4-3
5
2 5-1 2 -1
样例输出:
8
20
代码如下:
#include <stdlib.h>
int main()
{
int max(int *z,int n);
int a[18];
int n,m;
scanf("%d",&n);
int *p;
for (p=a;p<a+n;p++)
scanf("%d",p);
m=max(a,n);
for (p=a;p<a+n;p++)
{
if ( max(p,n)>m )
m=max(p,n);
}
if (m<0)
printf("-1\n");
else
printf("%d\n",m);
return 0;
}
int max(int *z,int n)
{
int i,*p;
int max=0,m=1;
for(i=1;i<n;i++)
{
m=1;
for(p=z;p<=z+i;p++)
m*=(*p);
if (m>=max)
max=m;
}
return max;
}
c++代码如下:
#include<iostream>
#include<string.h>
#include<stdio.h>
#include<ctype.h>
#include<algorithm>
#include<stack>
#include<queue>
#include<math.h>
using namespace std;
int a[30];
int i,j;
int main()
{
int n;
int w;
long long ans;
while(scanf("%d",&n)!=EOF)
{
for(i=0; i<n; i++)
scanf("%d",&a[i]);
ans=0;
for(i=0; i<n; i++)
{
w=1;
for(j=0; j<n; j++)
{
w*=a[j];
if(w>ans)
ans=w;
}
}
if(ans>=0)
printf("%d\n",ans);
else
printf("-1\n");
}
return 0;
}
相关文章推荐
- ACMjava简单枚举除法,分数拆分,双基回文数,最大乘积
- 枚举系列 最大乘积 java版
- 【开放 5月18日 发布】:子数组的最大乘积问题_____问题简单,请思考如何逐步降低时间复杂度,跟帖回复,群内讨论.
- UVa 11059 最大乘积(枚举)
- 7_2 最大乘积(UVa11059)<枚举连续子序列>
- UVa 11059 最大乘积(枚举)
- (枚举)算法竞赛入门经典(7.1.2)最大乘积
- (枚举)算法竞赛入门经典(7.1.2)最大乘积
- 百练 4021:最大乘积 枚举
- 小白书暴力求解篇--简单枚举
- 蓝桥杯 算法提高 算法提高 最大乘积
- 最大子序列和——简单问题的不简单之处
- 算法提高 最大乘积
- 乘积最大
- 数和分解,乘积最大-vijos整数分解(版本2)
- 成长轨迹55 【ACM算法之路 百炼poj.grids.cn】【简单枚举】【2812:恼人的青蛙】
- 拼多多内推笔试一:求数组中任意三个数的最大乘积
- lintcode--乘积最大子序列
- 动态规划--求最大连续子数组的和(Python实现)&求解最大连续乘积字串(Python实现)
- Problem 8--找连续的五个数的最大乘积