
? Travail en cours?
Téléchargez le fichier d'en-tête unique à inclure à un emplacement sous votre chemin d'inclusion. Puis #include le dans votre code:
# include " BigInt.hpp " // the actual path may vary Créez des objets de la classe BigInt et faites ce que vous avez à faire!
BigInt big1 = 1234567890 , big2;
big2 = " 9876543210123456789098765432101234567890 " ;
std::cout << big1 * big2 * 123456 << " n " ;
// Output: 1505331490682966620443288524512589666204282352096057600 = Le deuxième opérande peut être un BigInt , un entier (jusqu'à long long ) ou une chaîne ( std::string ou un littéral de chaîne).
big1 = 1234567890 ;
big1 = " 123456789012345678901234567890 " ;
big1 = big2;+ , - big1 = +big2; // doesn't return the absolute value
big1 = -big2;+ , - , * , / , % L'un des opérandes doit être un BigInt et l'autre peut être un BigInt , un entier (jusqu'à long long ) ou une chaîne ( std::string ou une chaîne littérale).
big1 = big2 + 1234567890 ;
big1 = big2 - " 123456789012345678901234567890 " ;
big1 = big2 * big3;
big1 = 1234567890 / big2;
big1 = " 123456789012345678901234567890 " % big2;+= , -= , *= , /= , %= Le deuxième opérande peut être un BigInt , un entier (jusqu'à long long ) ou une chaîne ( std::string ou un littéral de chaîne).
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 < , > , <= , >= , == ,! != L'un des opérandes doit être un BigInt et l'autre peut être un BigInt , un entier (jusqu'à long long ) ou une chaîne ( std::string ou une chaîne littérale).
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 Convertissez un BigInt en une string , int , long ou long long .
Remarque : Si le BigInt est au-delà de la plage du type cible, une exception OUT_OF_RANGE est lancée.
some_str = big1.to_string();
some_int = big1.to_int();
some_long = big1.to_long();
some_long_long = big1.to_long_long();abs Obtenez la valeur absolue d'un BigInt .
big1 = abs(big2);big_pow10 Obtenez un BigInt égal à 10 EXP .
big1 = big_pow10( 5000 ); // big1 = 10^5000 gcd Obtenez le plus grand diviseur commun (GCD aka. HCF) de deux BigInt . L'un des arguments peut être un entier (jusqu'à long long ) ou une chaîne ( std::string ou une chaîne littérale).
big1 = gcd(big2, big3);
big1 = gcd(big2, 1234567890 );
big1 = gcd(big2, " 123456789012345678901234567890 " );
big1 = gcd( 1234567890 , big2);
big1 = gcd( " 123456789012345678901234567890 " , big2);lcm Obtenez le multiple le moins commun (LCM) de deux BigInt . L'un des arguments peut être un entier (jusqu'à long long ) ou une chaîne ( std::string ou une chaîne littérale).
big1 = lcm(big2, big3);
big1 = lcm(big2, 1234567890 );
big1 = lcm(big2, " 123456789012345678901234567890 " );
big1 = lcm( 1234567890 , big2);
big1 = lcm( " 123456789012345678901234567890 " , big2);pow Obtenez la valeur de la base Exp en tant que BigInt . La base peut être soit un BigInt , un entier (jusqu'à long long ) ou une chaîne ( std::string ou un littéral de chaîne).
big1 = pow(big2, 789 );
big1 = pow( 987654321LL , 456 ); // suffix literal with LL to prevent conflicts
big1 = pow( " 1234567890 " , 123 );sqrt Obtenez la racine carrée entière d'un BigInt .
big1 = sqrt(big2);big_random Obtenez une BigInt aléatoire, qui a soit un nombre aléatoire de chiffres (jusqu'à 1000), soit un nombre spécifique de chiffres.
// 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 );Étant donné que ce projet est construit en tant que bibliothèque d'en-tête uniquement, il n'y a pas de fichiers source. Cependant, il existe des tests unitaires pour chaque fichier d'en-tête dans lequel le projet est divisé. Ceux-ci peuvent être compilés et construits via la ligne de commande, soit en utilisant un IDE qui a une prise en charge directe pour CMake (tel que Clion, Qt Creator) ou pour lequel Cmake peut générer des fichiers de projet (Visual Studio, Eclipse CDT, Code :: Blocks et plus).
Sur Linux et MacOS, vous pouvez compiler et exécuter les tests à l'aide de la ligne de commande à partir du répertoire racine du projet.
make .make test .make release . Le fichier généré apparaîtra dans le dossier release .Settings > Build > CMake , définissez le Generation path pour build .Ensuite, vous pouvez simplement sélectionner la cible (test unitaire) que vous souhaitez construire / exécuter, et votre IDE fera le reste.
Dans le cas où votre IDE ne prend pas en charge directement CMake, vous devrez exécuter cmake via la ligne de commande avec les indicateurs appropriés pour générer les fichiers de projet pour votre IDE. Essayez, ce n'est pas censé être difficile!
Veuillez lire les directives contributives pour plus de détails sur la façon de contribuer au projet.
Ce projet est concédé sous licence de la licence du MIT.