输入n个元素组成的序列s,找出一个乘积最大的连续子序列,如果这个子序列不是整数,则输出0.
解题思路:
枚举起点和终点,把中间的数相乘,然后找到最大的结果。
代码如下:
#include <iostream>
using namespace std;
typedef long long LL;
const int N = 100;
LL a[N];//开long longint main() {int cnt = 1;int n;while (cin >> n) {LL ans = 0;//放while里面,开long longfor (int i = 0; i < n; i++)cin >> a[i];for (int i = 1; i <= n; i++)for (int j = 0; j + i <= n; j++) {LL tmp = 1;for (int k = j; k < i + j; k++) {tmp *= a[k];}ans = max(ans, tmp);}printf("Case #%d: The maximum product is %lld.\n\n", cnt++, ans);//注意%lld,不要写成%d}return 0;
}