Thema: Delphi Programm Hilfe

Einzelnen Beitrag anzeigen

Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.062 Beiträge
 
Delphi XE2 Professional
 
#42

AW: Programm Hilfe

  Alt 20. Okt 2011, 13:30
@p80286:
Zitat:
Das geht ganz gut ohne mod und div und kann ach mit 2,3,4,5,... stelligen Zahlen umgehen.
Hast du das denn wirklich mal probiert.
So, wie der Code in deinem Beitrag steht, wird er nicht funktionieren.
Warum?: Weil du auf eine StringList "dummy1" zugreifst, die nicht deklariert ist.

Ich hab das ganze auch mal durchgespielt und bemerkt, daß bei allen 4-stelligen Zahlen 6174 als sich wiederholende Differenz herauskommt.
Also hab ich mal Tante Google bemüht und bin auf diesen Link gestoßen.
http://en.wikipedia.org/wiki/6174_(number)

So sieht mein Code aus:
(das in meinem Code angesprochene "meResult" ist ein TMemo)

Delphi-Quellcode:
PROCEDURE TForm1.Work(ss:string);
var r,s,t:string; len,i,j,res,old:integer; h:char;
begin
   res:=-1;
   len:=Length(ss);
   SetLength(t,len);
   repeat
      old:=res;
      s:=ss;
      // s sortieren
      for i:=1 to len-1 do
         for j:=i+1 to len do
            if s[i]>s[j] then begin
               h:=s[i];
               s[i]:=s[j];
               s[j]:=h;
            end;
      // s reverse in t stellen
      for i:=1 to len do t[len+1-i]:=s[i];
      res:=StrToInt(t)-StrToInt(s);
      // res als String mit führenden Nullen in r
      Str(res:len,r);
      for i:=1 to len do if r[i]=' then r[i]:='0else break;
      meResult.Lines.Add(ss+' : '+t+' - '+s+' = '+r);
      ss:=r;
   until (res=old) or (meResult.lines.count>30);
end;
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat