Đề thi Toán - Tin học trong nhà trường (Bài 38)

Chia sẻ bởi Thân Thị Thanh | Ngày 18/10/2018 | 74

Chia sẻ tài liệu: Đề thi Toán - Tin học trong nhà trường (Bài 38) thuộc Sinh học 6

Nội dung tài liệu:

Bài 38/2000 - Tam giác số
Uses Crt;
Const inp=`INPUT.TXT`;
Var N,Smax: integer;
a: array [1..100,1..100] of integer;
{----------------------------------------}
Procedure Nhap;
Var f: text;
i,j: integer;
Begin
Assign(f,inp);
Reset(f);
Readln(f,n);
For i:=1 to N do
begin
For j:=1 to i do Read(f,a[i,j]);
Readln(f);
end;
Close(f);
End;
{----------------------------------------}
Procedure Thu(S,i,j: integer);
Var k,S_new: integer;
Begin
S_new:=S+a[i,j];
If i=N then
begin
If S_new>Smax then Smax:=S_new;
end
else
For k:=j to j+1 do Thu(S_new, i+1, k);
End;
{----------------------------------------}
BEGIN
Nhap;
Smax:=0;
Thu(0,1,1);
Write(`Smax = `,Smax);
Readln;
END.

Dưới đây các bạn có thể tham khảo lời giải của bạn Phạm Đức Thanh dùng phương pháp quy hoạch động trên mảng hai chiều:
Program bai38;
Uses crt;
Type mang = array[1..100,1..100] of integer;
Var
f:text;
i,j,n:integer;
a,b:mang;
Procedure Input;
Begin
clrscr;
Assign(f,`input.txt`);
reset(f);
readln(f,n);
for j:=1 to n do
begin
for i:=2 to j+1 do
read(f,a[j,i]);
end;
close(f);
end;
{----------------------------------}
Function Max(m,n:integer):integer;
Begin
if n>m then Max:=n
else Max:=m;
end;
{----------------------------------}
Procedure MakeArrayOfQHD;
Begin
b[1,2]:=a[1,2];
for j:=1 to n do b[j,1]:=-maxint;
for i:=3 to n do b[1,i]:=-maxint;
for j:=2 to n do
begin
for i:=2 to j+1 do
b[j,i]:=a[j,i]+max(b[j-1,i],b[j-1,i-1]);
end;
end;
{-----------------------------------}
Procedure FindMax;
var max:integer;
Begin
max:=b[n,1];
for i:=2 to n do
if b[n,i]>max then max:=b[n,i];
writeln(`Smax:=`,max);
readln;
end;
{------------------------------------}
BEGIN
Input;
makearrayofQHD;
FindMax;
END.

Nhận xét: Lời giải dùng thuật toán quy hoạch động của Phạm Đức Thanh tốt hơn rất nhiều so với thuật toán đệ quy quay lui.


* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Thân Thị Thanh
Dung lượng: | Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)