Thema: Delphi Programm Hilfe

Einzelnen Beitrag anzeigen

Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#56

AW: Programm Hilfe

  Alt 23. Okt 2011, 13:15
Hast du doch in #1 geschrieben, so oft wiederholen bis das Ergebnis der vorletzten Iteration dem Ergebnis der letzten Iteration entsprich (also 6174).

Delphi-Quellcode:
function GetFirstKaprekarsConstant(const Value: int64): int64;
var
  T, MinValue, MaxValue, PrevResult: int64;
  Number: array [1..10] of int64;
  I, J, N, Count: integer;
begin
  Result:= 0;
  N:= Length(IntToStr(Value));
  if (N in [3, 4, 6, 8, 9, 10]) and (Value > 0) then
  begin
    Result:= Value;
    Count:= 0;
    repeat
      PrevResult:= Result;
      for I:= 1 to N do
      begin
        *** Number[I] berechnen;
      end;
      *** Number sortieren
      *** MinValue und MaxValue berechnen
      Result:= MaxValue-MinValue;
    until (Result = PrevResult) or (Count > 1000);
    if Count > 1000 then Result:= 0; // Kein Ergebnis gefunden
  end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  Value: int64;
begin
  Edit2.Text:= '';
  if TryStrToInt64(Trim(Edit1.Text), Value) then
    Edit2.Text:= IntToStr(GetFirstKaprekarsConstant(Value));
end;
  Mit Zitat antworten Zitat