Also habe ich hier eine Funktionsantwort erstellt und was ich genau machen möchte, ist die Anzahl zu drucken, bis die Liste eindeutige Werte hat.Ich möchte die Länge der Liste auf das erste Duplikat drucken?
Was ich getan habe ist:
Schritt 1: Ich habe eine Nummer x in eine Funktion übergeben.
Schritt 2: Erstellt x und y, die nichts als aufsteigende und absteigende Werte von x ist.
Schritt 3: Ich habe z = x-y und z bis n zugewiesen, was der neue Wert von n ist Schritt 4: Wiederholen und Werte in einer Liste speichern, bis die Liste eindeutig ist.
Zum Beispiel: wenn n = 1211, dann x = 2111 und y = 1112 daher z = 2111-1112 = 0999 jetzt nächste n = 0999.
- Jetzt Liste ist [1211, 0999]
- Dies wird weitergehen, bis die Liste eindeutigen Wert hat
Ich weiß, dass etwas mit meiner Antwort-Funktion falsch ist, weil, was es gerade tut, ist Entfernen Sie doppelte Werte aus der Liste und drucken Sie sie. Jetzt läuft es eine Endlosschleife, aber sollte nicht, weil die Antwort 1 ist, wiederholt es nach einem Wert. Können Sie mir sagen, wie ich meinen Code verbessern kann, damit ich die Anzahl richtig berechnen kann?
Ich verstehe nicht genau, was Sie wollen? Möchten Sie die Anzahl der eindeutigen Elemente oder der Duplikate oder die Länge der Liste auf das erste Duplikat oder die Länge der Liste aus dem letzten Duplikat zählen? Bitte umschreiben, um es klarer zu machen. – JohanL
Länge der Liste bis zum ersten Duplikat. @JohanL –
Wie funktioniert 'n nicht in Zahlen [: n]:' genau? Sie möchten die Liste vom Anfang bis zum 1211-Index einer leeren Startliste aufteilen? –