您的位置:首页 > 其它

【C源码】最大乘积问题

2013-12-10 21:21 246 查看
//输入n个数,输出n个数字的最大乘积

//暴力枚举法练习

//《算法竞赛入门经典》P115第七章 7.1.2

#include<stdio.h>
#include<stdlib.h>

#define MAX 20

int main(void)
{
int i,j;
int sum=0;
int n;
int num[MAX];

scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&num[i]);
if(num[i]<0)
sum++;
}
long long max=0;
if(sum%2==0)
{

for(i=1;i<=n;i++)
{
max*=num[i];
}
}
else
{
long long k=1;
for(i=1;i<=n;i++)
{
k=1;
for(j=n;j>=i;j--)
{
int l;
int k=1;
for(l=i;l<=j;l++)
{
k=k*num[l];
}
if(max<k)
max=k;
}
}
}
printf("%d\n",max);

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