SSL 1461——最大连续数列的和

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;
begin
  max:=0;
  readln(n);
  for i:=1 to n do
    begin
      read(a[i]); 
      if a[i-1]>0 then a[i]:=a[i]+a[i-1];
      if a[i]>max then
      max:=a[i];
    end;
  write(max);
end.
posted @ 2017-02-25 11:18  BEYang_Z  阅读(138)  评论(0编辑  收藏  举报