Zitat:
6957 /9675-5679=3996
Das ist doch schon falsch, das Maximum wäre 9765. Gut, hier noch ein paar Hilfsfunktionen, die ich selbst verwendet habe, den Kern musst Du aber selbst machen:
Delphi-Quellcode:
type
TZiffern = array [1 .. 4] of Byte;
TDirection = (drAsc (*aufsteigend*), drDesc (*absteigend*));
function Zerlege(Wert: integer): TZiffern;
begin
Result[1] := Wert mod 10000 div 1000;
Result[2] := Wert mod 1000 div 100;
Result[3] := Wert mod 100 div 10;
Result[4] := Wert mod 10;
end;
procedure Sort(var Ziffern: TZiffern; Direction: TDirection);
begin
//Hier wird ein Bubblesort verwendet, den ich aber zunächst nicht poste, Beispiele dafür gibt es massig hier im Forum
end;
function ZiffernToZahl(Ziffern: TZiffern): integer;
begin
Result := Ziffern[1] * 1000 + Ziffern[2] * 100 + Ziffern[3] * 10 + Ziffern[4];
end;
function MaxWert(Ziffern: TZiffern): integer;
begin
Sort(Ziffern, drDesc);
Result := ZiffernToZahl(Ziffern);
end;
function MinWert(Ziffern: TZiffern): integer;
begin
Sort(Ziffern, drAsc);
Result := ZiffernToZahl(Ziffern);
end;
Das war die Löwenarbeit, der Rest besteht aus Verwendung dieser Funktionen.