pascal题:取数,求代码!有n个数(2≤n≤100),排成一排,从n个数中任取若干个数,取数规则为每次取相邻的2个数,不能取1个,也不能取多于2个连续的数,找一种取法,使取得的数的和为最大.例如:n=
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 08:22:10
pascal题:取数,求代码!有n个数(2≤n≤100),排成一排,从n个数中任取若干个数,取数规则为每次取相邻的2个数,不能取1个,也不能取多于2个连续的数,找一种取法,使取得的数的和为最大.例如:n=
pascal题:取数,求代码!
有n个数(2≤n≤100),排成一排,从n个数中任取若干个数,取数规则为每次取相邻的2个数,不能取1个,也不能取多于2个连续的数,找一种取法,使取得的数的和为最大.
例如:n=6 6个数
13 2 17 14 8 16
取数方法有
13 2 14 8 和为37
13 2 8 16 和为39
2 17 8 16 和为43
17 14 和为31
其中和最大的为43
输入
文件输入
输入文件格式
n 第1行一个整数n
x1 x2 ……xn 第2行n个整数(1≤i≤100)
输出
一个整数,即合理取法中的最大的和.
样例输入
6
12 7 8 14 9 13
样例输出
43
pascal题:取数,求代码!有n个数(2≤n≤100),排成一排,从n个数中任取若干个数,取数规则为每次取相邻的2个数,不能取1个,也不能取多于2个连续的数,找一种取法,使取得的数的和为最大.例如:n=
var a:array[1..100]of integer; n,i,j,s,max:longint;
begin
read(n);
for i:=1 to n do read(a[i]);
max:=-99999;
for i:=1 to n-1 do
begin
s:=0; j:=i;
while j<n do
begin inc(s,a[j]+a[j+1]); inc(j,3) end;
if s>max then max:=s;
end;
writeln(max);
end.