Gibt es eine Idee, wie ich die Anzahl der Elemente zählen kann, die eine "if" Bedingung bestätigen?

7
%Vor%

Ich muss die Anzahl der Wiederholungen der Kettenmethode ausgeben.

    
Deneb A. 18.04.2013, 14:03
quelle

4 Antworten

4

Entfernen Sie die count -Variable aus Ihrer Methode und machen Sie sie zu einem statischen Mitglied Ihrer Klasse. Um die Wiederholung von yourlsef (DRY-Prinzip) zu verhindern, sollten Sie die Variable count am Anfang Ihrer Methode erhöhen.

%Vor%     
Laf 18.04.2013, 14:13
quelle
10

Wie wäre es damit:

%Vor%

Für mich scheint das sauberer zu sein, als ein statisches Feld außerhalb der Methode zu deklarieren, hauptsächlich, weil ich nicht befürchten müsste, das statische Feld bei jedem Aufruf von chain auf 0 zurückzusetzen.

    
arshajii 18.04.2013 14:10
quelle
5

Ich verstehe nicht wirklich, was Sie fragen. Wenn Sie jedoch möchten, dass die Anzahl außerhalb der Methode liegt, können Sie bei jedem Aufruf der Methode eine lokale Kopie erstellen, um sie statisch zu machen.

%Vor%     
Lefteris E 18.04.2013 14:05
quelle
1

Dies scheint auch zu funktionieren und verwendet diesen hässlichen Extra-Parameter nicht.

Ich habe den Algorithmus ein wenig angepasst (indem ich chain(3 * n + 1) in else part gesetzt habe) unter der Annahme, dass dies tatsächlich ein Versuch ist, die Länge der Hailstone-Folge der Collatz-Vermutung . Wie ursprünglich gesagt, würde es nur Überlauf stacken.

Dieser Code erzeugt tatsächlich 111 , wenn er 27 übergeben wird.

%Vor%

Und eine iterative Version sieht der ursprünglichen Frage überraschend ähnlich:

%Vor%     
OldCurmudgeon 18.04.2013 14:22
quelle

Tags und Links