Description
求最大连续子序列的和
Input
第一行输入n(n<=500),第二行为n个以空格分开的整数(-1000到1000之间);
Output
该序列中最大的连续子序列的和
Sample Input
6
1 2 -5 6 7 8
Sample Output
21
每次读入一个数判断它是否为负数,如果不是就赋值为a[i]:=a[i]+a[i-1]
在判断max是否大于a[i],如果是则更新值
代码如下:
var max,i,n:longint;a:array[0..500]of longint;
beginmax:=0;readln(n);for i:=1 to n dobeginread(a[i]); if a[i-1]>0 then a[i]:=a[i]+a[i-1];if a[i]>max thenmax:=a[i];end;write(max);
end.