C - Maximum Product UVA - 11059

C - Maximum Product UVA - 11059

题目:求出最大的乘积。

由于范围较小,可直接用枚举暴力。

#include
using namespace std;
int main(){
	int n;
	int k=1;
	int a[20];
	while(cin >> n){
		for(int i=1;i<=n;i++){
			cin >> a[i];
		}
		long long max=0;
		for(int i=1;i<=n;i++){
			long long sum=1;
			for(int j=i;j<=n;j++){
				sum*=a[j];
				if(sum>max) max=sum;
			} 
		}
		 printf("Case #%d: The maximum product is %lld.\n\n",k,max);
		 k++;
	}
	return 0;
}

我第二遍写的时候在想,数据大的时候有没有办法,思路使用sort排序,在全部相乘,如果为负数,除去最大的负数,并排除存在0或全部为0的情况。

/*
#include
#include
using namespace std;
bool check(int cnt[],int n){//判断是否全部为0
	int f=1;
	for (int i=0;iy;
}
int main(){
	int f=1;//判断总次数 
	int n;
	int cnt [20];
	while(cin >> n){
		for(int i=0;i> cnt[i];
		}
		sort(cnt,cnt+n,cmp);
		long long ans=1;
		int k=1;//判断是否全为0 
		for(int i=0;i

wrong answer//希望帮忙,第一个是ac的

你可能感兴趣的:(c++)