
? In Arbeit arbeiten?
Laden Sie die Einzel-Inklude-Header-Datei an einen Ort unter Ihrem Pfad herunter. Dann #include es in Ihrem Code:
# include " BigInt.hpp " // the actual path may vary Erstellen Sie Objekte der BigInt -Klasse und tun Sie, was Sie tun müssen!
BigInt big1 = 1234567890 , big2;
big2 = " 9876543210123456789098765432101234567890 " ;
std::cout << big1 * big2 * 123456 << " n " ;
// Output: 1505331490682966620443288524512589666204282352096057600 = Der zweite Operand kann entweder ein BigInt , eine Ganzzahl (bis zu long long ) oder eine Zeichenfolge ( std::string oder ein String -Literal) sein.
big1 = 1234567890 ;
big1 = " 123456789012345678901234567890 " ;
big1 = big2;+ , - big1 = +big2; // doesn't return the absolute value
big1 = -big2;+ , - , * , / , % Einer der Operanden muss ein BigInt sein und der andere kann ein BigInt , eine Ganzzahl (bis zu long long ) oder eine Zeichenfolge ( std::string oder ein String -Literal) sein.
big1 = big2 + 1234567890 ;
big1 = big2 - " 123456789012345678901234567890 " ;
big1 = big2 * big3;
big1 = 1234567890 / big2;
big1 = " 123456789012345678901234567890 " % big2;+= , -= , *= , /= , %= Der zweite Operand kann entweder ein BigInt , eine Ganzzahl (bis zu long long ) oder eine Zeichenfolge ( std::string oder ein String -Literal) sein.
big1 += big2;
big1 -= 1234567890 ;
big1 *= " 123456789012345678901234567890 " ;
big1 /= big2;
big1 %= 1234567890 ;++ , -- big1 = ++big2; // pre-increment
big1 = --big2; // pre-decrement
big1 = big2++; // post-increment
big1 = big2--; // post-decrement < , > , <= , >= , == ,! != Einer der Operanden muss ein BigInt sein und der andere kann ein BigInt , eine Ganzzahl (bis zu long long ) oder eine Zeichenfolge ( std::string oder ein String -Literal) sein.
if (big1 < 1234567890
or big1 > " 123456789012345678901234567890 "
or big1 <= big2
or 1234567890 >= big1
or " 123456789012345678901234567890 " == big1
or big1 != big3) {
...
}<< , >> std::cout << big1 << " , " << big2 << " n " ;
output_file << big1 << " , " << big2 << " n " ;
std::cin >> big1 >> big2;
input_file >> big1 >> big2;to_string , to_int , to_long , to_long_long Konvertieren Sie eine BigInt entweder in eine string , int , long oder long long .
Hinweis : Wenn der BigInt über den Bereich des Zieltyps hinausgeht, wird eine Out_of_Range -Ausnahme ausgelöst.
some_str = big1.to_string();
some_int = big1.to_int();
some_long = big1.to_long();
some_long_long = big1.to_long_long();abs Holen Sie sich den absoluten Wert einer BigInt .
big1 = abs(big2);big_pow10 Holen Sie sich eine BigInt in Höhe von 10 Exp .
big1 = big_pow10( 5000 ); // big1 = 10^5000 gcd Holen Sie sich den größten gemeinsamen Divisor (GCD AKA. HCF) von zwei BigInt . Eines der Argumente kann eine Ganzzahl (bis zu long long ) oder eine String ( std::string oder ein Zeichenfolgenliteral) sein.
big1 = gcd(big2, big3);
big1 = gcd(big2, 1234567890 );
big1 = gcd(big2, " 123456789012345678901234567890 " );
big1 = gcd( 1234567890 , big2);
big1 = gcd( " 123456789012345678901234567890 " , big2);lcm Holen Sie sich das am wenigsten häufige Mehrfachmultiple (LCM) von zwei BigInt s. Eines der Argumente kann eine Ganzzahl (bis zu long long ) oder eine String ( std::string oder ein Zeichenfolgenliteral) sein.
big1 = lcm(big2, big3);
big1 = lcm(big2, 1234567890 );
big1 = lcm(big2, " 123456789012345678901234567890 " );
big1 = lcm( 1234567890 , big2);
big1 = lcm( " 123456789012345678901234567890 " , big2);pow Holen Sie sich den Wert von Base exp als BigInt . Die Basis kann entweder ein BigInt , eine Ganzzahl (bis zu long long ) oder eine Zeichenfolge ( std::string oder ein String Literal) sein.
big1 = pow(big2, 789 );
big1 = pow( 987654321LL , 456 ); // suffix literal with LL to prevent conflicts
big1 = pow( " 1234567890 " , 123 );sqrt Holen Sie sich die Ganzzahlquadratwurzel eines BigInt .
big1 = sqrt(big2);big_random Holen Sie sich einen zufälligen BigInt , der entweder eine zufällige Anzahl von Ziffern (bis zu 1000) oder eine bestimmte Anzahl von Ziffern hat.
// get a random BigInt that has a random number of digits (up to 1000):
big1 = big_random();
// get a random BigInt that has 12345 digits:
big1 = big_random( 12345 );Da dieses Projekt als Learle-Bibliothek nur für Header erstellt wurde, gibt es keine Quelldateien. Es gibt jedoch Unit -Tests für jede Header -Datei, in die das Projekt aufgeteilt ist. Diese können entweder über die Befehlszeile oder eine IDE erstellt werden, die eine direkte Unterstützung für CMake (z. B. Clion, QT Creator) hat oder für das CMake Projektdateien (Visual Studio, Eclipse CDT, Code :: Blocks und mehr) generieren kann.
Unter Linux und MacOS können Sie die Tests mit der Befehlszeile aus dem Stammverzeichnis des Projekts kompilieren und ausführen.
make .make test .make release . Die generierte Datei wird im release -Ordner angezeigt.build Sie in den Build -Einstellungen für CMAKE, die normalerweise bei Settings > Build > CMake gefunden werden können, den Generation path fest.Anschließend können Sie einfach aus auswählen, welches Ziel (Unit -Test) Sie erstellen/ausführen möchten, und Ihre IDE wird den Rest ausführen.
Falls Ihre IDE CMake nicht direkt unterstützt, müssen Sie cmake über die Befehlszeile mit den entsprechenden Flags ausführen, um die Projektdateien für Ihre IDE zu generieren. Probieren Sie es aus, es soll nicht schwer sein!
Bitte lesen Sie die beitragenden Richtlinien für Einzelheiten zum Beitrag zum Projekt.
Dieses Projekt ist gemäß den Bedingungen der MIT -Lizenz lizenziert.