【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;
}
//暴力枚举法练习
//《算法竞赛入门经典》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;
}
相关文章推荐
- 30.最大k乘积问题 (15分)(未完待续)
- 最大K乘积问题
- 【开放 5月18日 发布】:子数组的最大乘积问题_____问题简单,请思考如何逐步降低时间复杂度,跟帖回复,群内讨论.
- 【动态规划】最大k乘积问题
- 蓝桥杯 算法训练—— 最大乘积问题
- 动态规划之最大k乘积,编辑距离,k好数,节点选择,背包问题
- 求最小子序列和,最小的正子序列和,最大子序列乘积问题
- 最大k乘积问题(dp)
- foj 1208 最大k乘积问题
- 最大子序乘积问题的分析
- JAVA代码—算法基础:最大连续子数组乘积问题
- 最大K乘积问题(DP专题)
- AOJ-190 乘积最大问题
- 贪心算法----正整数分解问题 和相同,乘积最大
- FOJ--1698--最大乘积--解题报告(大数乘小数的问题)
- 1209 -- 乘积最大问题
- 正整数分解使得乘积最大问题
- 最大乘积问题
- 最大k乘积问题
- 最大乘积问题