Thema: Delphi Collatz Problem

Einzelnen Beitrag anzeigen

lasagne0504

Registriert seit: 9. Jul 2013
2 Beiträge
 
#1

Collatz Problem

  Alt 9. Jul 2013, 20:50
Hallo,

seit einiger Zeit Programmiere ich jetzt in Delphi, ich bin neu im Forum und habe jetzt mein erstes Problem .
Und zwar programmiere ich gerade ein Programm, welches mit einer Zahl nach dem Algorithmus des Collatz-Problemes verfährt (http://de.wikipedia.org/wiki/Collatz-Problem).
So sieht mein Quellcode aus:

var x,z:integer;


begin
x:=strtoint(edit1.Text);
z:=0;
if (x=0) or (x<0) then begin
showmessage('Die Zahl muss mindestens 1 sein!');
end else begin
while (x>1) do begin
if (x mod 2=0) then begin
x:= x div 2;
z:=z+1;
end else begin
x:=x*3+1;
z:=z+1;
end;
label1.Caption:='Nach '+inttostr(z)+' Schritten kommt 1 heraus.';
end;

end;


end;


Das Programm funktioniert mit (fast) alle Zahlen, die man eingibt, zumindest kam bei jeder Stichprobe das richtige Ergebnis raus. Es funktioniert aber wie gesagt nur bei fast allen Zahlen, bei der Zahl 670617279 funktioniert es nicht (das ist angeblich die Zahl unter einer Milliarde, bei der am meisten Schritte erforderlich sind). Es wird angezeigt, das nur 3 Schritte erforderlich wären, um auf eins zu kommen, wobei es eigentlich 986 sein müssten.
Ich kann mir das nicht erklären, habt Ihr eine Idee?
Vielen Dank
  Mit Zitat antworten Zitat