Kombinationen ohne Duplikate.
Delphi-Quellcode:
function Kombinationen(const Values: array of Integer): Integer;
function DoCombi(Index, Start: Integer): Integer;
begin
if Index <= High(Values) then
begin
// Ausgabe der gebildeten Summe
WriteLn( Start + Values[Index]:5 );
// kombinatorische Rekusionen und Berechnung der Anzahl der Summen
Result := 1 + DoCombi(Index +1, Start + Values[Index]) +
DoCombi(Index +1, Start );
end else Result := 0;
end;
begin
Result := DoCombi(Low(Values), 0);
end;
Mehrfach bildbare Summen werden nicht ausgefiltert.
Gruß Hagen