[UVA11059]Maximum Product[暴力]

题目链接: [UVA11059]Maximum Product[暴力]
题意分析:给出一个序列,问这个序列中最大连续累乘的子序列中,最大的值为多少,如果都为负数,则输出0.
解题思路:整个元素最多有18个,大小最大10.所以要开到long long。然后列举所有长度即可。另外要注意输出格式,每个样例都要输出一个空白行(可怕的UVA格式)。
个人感受:开场就蹦着这道题去做的。结果大家都A得差不多了,我还在各种debug。从RE(除数为0)->WA(循环边界设置不对)。总共WA了11次。血的教训TAT。感觉暴露了自己代码能力不强。别人一般就是1A。而自己却这样,谨记!

具体代码如下:

#include<iostream>
#include<cstdio>
using namespace std;
long long num[100];

int main()
{
	int n;
	int cnt = 0;
	while (cin >> n)
	{
		long long ans = 0;
		for (int i = 0; i < n; ++i)
			cin >> num[i];
		for (int i = 1; i <= n; ++i) //i:子序列长度 
		{
			for (int j = 0; j + i <= n; ++j) //j:子序列起点 (这里之前写j + i < n,怒跪) 
			{
				long long tt = 1;
				for (int k = j; k < j + i; ++k) //累乘 
				{
					tt *= num[k];
				}
				//cout << tt << endl;
				ans = max(ans, tt);
			}
		}
		printf("Case #%d: The maximum product is %lld.\n\n", ++cnt, ans);
	}
	return 0;
}


你可能感兴趣的:(uva,暴力)