求Free Pascal程序
问题如下:第一行输入一个正整数n(1<=n<=1000),以下n行输入一个数字三角形。例:8729763456182467961347246318956793546求从1...
问题如下:
第一行输入一个正整数n(1<=n<=1000),以下n行输入一个数字三角形。
例:
8
7
2 9
7 6 3
4 5 6 1
8 2 4 6 7
9 6 1 3 4 7
2 4 6 3 1 8 9
5 6 7 9 3 5 4 6
求从1,1到第n行的任意位置所经过之点最大和并输出。
注:只能向下或向斜下走,即只能从i,j走到i+1,j或i+1,j+1.
求解,求大神帮帮忙! 展开
第一行输入一个正整数n(1<=n<=1000),以下n行输入一个数字三角形。
例:
8
7
2 9
7 6 3
4 5 6 1
8 2 4 6 7
9 6 1 3 4 7
2 4 6 3 1 8 9
5 6 7 9 3 5 4 6
求从1,1到第n行的任意位置所经过之点最大和并输出。
注:只能向下或向斜下走,即只能从i,j走到i+1,j或i+1,j+1.
求解,求大神帮帮忙! 展开
1个回答
展开全部
var
a,f:array[0..1001,0..1001] of longint;
n,i,j:longint;
function max(a,b:longint):longint;
begin
max:=a;
if a<b then max:=b;
end;
begin
readln(n);
for i:=1 to n do
for j:=1 to i do
read(a[i,j]);
fillchar(f,sizeof(f),0);
for i:=n downto 1 do
for j:=1 to i do
f[i,j]:=a[i,j]+max(f[i+1,j],f[i+1,j+1]);
writeln(f[1,1]);
end.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询