function TForm1.find(data,output:array of integer;M,i,n:integer):boolean; var j,k,MM:integer; temp:array of integer; begin Result:=false; setlength(temp,i); dec(n); dec(i); for j:=0 to i do temp[j]:=data[j]; for j:=0 to i do begin output[n]:=temp[j]; for k:=j+1 to i-1 do temp[k-1]:=data[k]; mm:=M-data[j]; if (n=0) and (mm=0) then begin Result:=true; exit; end; if (n>0) and (mm>0) then begin if find(temp,output,MM,i,n) then begin Result:=true; exit; end; end; end; end;
sorry有一点错误 定义应该是 function TForm1.find(var data,output:array of integer;M,i,n:integer):boolean; 应该传递指针
var
j,k,MM:integer;
temp:array of integer;
begin
Result:=false;
setlength(temp,i);
dec(n);
dec(i);
for j:=0 to i do temp[j]:=data[j];
for j:=0 to i do
begin
output[n]:=temp[j];
for k:=j+1 to i-1 do temp[k-1]:=data[k];
mm:=M-data[j];
if (n=0) and (mm=0) then
begin
Result:=true;
exit;
end;
if (n>0) and (mm>0) then
begin
if find(temp,output,MM,i,n) then
begin
Result:=true;
exit;
end;
end;
end;
end;
定义应该是
function TForm1.find(var data,output:array of integer;M,i,n:integer):boolean;
应该传递指针