In einem Projekt Euler Problem muss ich mit Zahlen umgehen, die Hunderte von Ziffern haben können. Und ich muss eine Berechnung mit den ersten 9 Ziffern durchführen.
Meine Frage ist: Wie kann ich am schnellsten die ersten N Ziffern einer 100-stelligen ganzen Zahl bestimmen? Die letzten N Ziffern sind einfach mit Modulo/Rest. Für die ersten Ziffern kann ich Modulo 100 Mal anwenden, um Ziffer für Ziffer zu erhalten, oder ich kann die Zahl in String konvertieren und abschneiden, aber das ist alles lineare Zeit. Gibt es einen besseren Weg?
2 Stimmen
Bei den meisten Euler-Projekten gibt es sowohl "Aha!"-Lösungen als auch "Brute-Force"-Lösungen... Außerdem hat Ihre Frage nichts mit Programmierung zu tun.
0 Stimmen
Warum ist die Umwandlung der Zahl in einen String und die Ausführung von str[i] linear?
2 Stimmen
@Mitch: Wie genau ist diese Frage "nicht programmierbezogen"?
0 Stimmen
Nette Frage von jemandem mit ~10k. Können Sie mehr Details angeben: Wie wird die ganze Zahl dargestellt und wie wollen Sie diese 9 Ziffern verwenden? Btw, scheint, dass Sie auf dem falschen Weg mit Ihrer aktuellen Lösung sind, wenn Sie dies benötigen.