PDA

View Full Version : Nho cac ban giai thich ho chuong tirnh



lehang_gb1
11-12-2011, 22:09
{Nhap vao so nguyen duong N va mang A gom N so nguyen duong A1,...,AN
Tim tap con cac so trong A sao cho tong cua chung bang M}
Var A,l:array[1..100] of integer;
i,N,k,S,M:integer;
Begin
write('Nhap vao so phan tu cua mang:');Readln(N);
write('Nhap vao so M:');Readln(M);
For i:=1 to N do
begin
write('A[',i,']=');
Readln(A[i]);
End;
k:=1;
l[1]:=0;
S:=0;
While k>0 do
begin
l[k]:=l[k]+1;
If l[k]<=n then
begin
If S+A[l[k]]<=M then
If S+A[l[k]]=M then
Begin
For i:=1 to k do write(l[i]:3);
writeln;
End
else
Begin
S:=S+A[l[k]];
l[k+1]:=l[k];
k:=k+1;
End;
End
else
Begin
k:=k-1;
S:=S-A[l[k]];
End;
End;


Readln
End.