Ich habe eine sehr große Anzahl:square_root sehr große Zahl in C bis <1000
char *big_numbr_str = "4325242066733762057192832260226492766115114212292022277";
I Radizierung diese Nummer behalten will, bis es < 1000. In PHP ist, kann ich dies tun kann relativ einfach:
Ich versuche jetzt, das gleiche in C zu erreichen, um mit dem gleichen Ergebnis zu enden. Als Referenz, nach 5 Zyklen in der while-Schleife, ist das Endergebnis in PHP aus dem obigen Snippet + Startnummer 50; Wenn Sie diese Zahl 5-mal an einer anderen Stelle setzen, sollten Sie ein ähnliches Ergebnis erhalten, abgerundet.
Wie würde ich das gleiche in Ebene C erreichen? Scheint das Speichern einer Nummer dieser Größe ist in C komplexer als erwartet.
Könnte die "relativ einfache" Mathematik der Quadratwurzelung mit der in einem Zeichen gespeicherten Zahl gemacht werden? – Tiago
Ja, Sie können: Nehmen Sie die linke Hälfte der Zeichenfolge, und nehmen Sie einige Korrekturen vor. wiederhole, bis der restliche Teil <1000 (<4 Zeichen) ist. – wildplasser
Scheint mit GMP zu arbeiten, danke! Obwohl ich immer noch interessiert wäre zu hören, ob es einen rohen C-Ansatz gibt, ohne GMP zu verknüpfen. – Tiago