输入n个元素组成的序列S,你需要找出一个乘积最大的连续子序列。如果这个最大的乘积不是正数,应输出0(表示无解),1<=n<=18,-10<=Si<=10
样例输入1:
3
2 4 -3
样例输出1:
8
样例输入2:
5
2 5 -1 2 -1
样例输出2:
20
#输入n个数
n=int(input())
data=input().split()
a=[]
for k in range(n):
a.append(int(data[k]))
max=0 #设置最大值
for i in range(n): #设置起点
acc=a[i]
for j in range(i+1,n): #设置终点
acc*=a[j]
if acc>=max and acc>0: #求最大值且要求大于0
max=acc
if max>0:
print(max)
else:
print(0)
分析:
连续子序列有两个要素:起点和终点,因此只需枚举起点和终点即可