
؟ العمل قيد التقدم؟
قم بتنزيل ملف رأس واحد في موقع واحد إلى موقع أسفل PATH الخاص بك. ثم #include في الكود الخاص بك:
# include " BigInt.hpp " // the actual path may vary إنشاء كائنات من فئة BigInt ، وافعل ما عليك القيام به!
BigInt big1 = 1234567890 , big2;
big2 = " 9876543210123456789098765432101234567890 " ;
std::cout << big1 * big2 * 123456 << " n " ;
// Output: 1505331490682966620443288524512589666204282352096057600 = يمكن أن يكون المعامل الثاني إما BigInt أو عدد صحيح (حتى long long ) أو سلسلة ( std::string أو سلسلة حرفية).
big1 = 1234567890 ;
big1 = " 123456789012345678901234567890 " ;
big1 = big2;+ ، - big1 = +big2; // doesn't return the absolute value
big1 = -big2;+ ، - ، * ، / ، % يجب أن يكون أحد المعاملات BigInt والآخر يمكن أن يكون BigInt أو عدد صحيح (حتى long long ) أو سلسلة ( std::string أو سلسلة حرفية).
big1 = big2 + 1234567890 ;
big1 = big2 - " 123456789012345678901234567890 " ;
big1 = big2 * big3;
big1 = 1234567890 / big2;
big1 = " 123456789012345678901234567890 " % big2;+= ، -= ، *= ، /= ، %= يمكن أن يكون المعامل الثاني إما BigInt أو عدد صحيح (حتى long long ) أو سلسلة ( std::string أو سلسلة حرفية).
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 < ، > ، <= ، >= ، == ، != يجب أن يكون أحد المعاملات BigInt والآخر يمكن أن يكون BigInt أو عدد صحيح (حتى long long ) أو سلسلة ( std::string أو سلسلة حرفية).
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 تحويل BigInt إلى string ، int ، long ، أو long long .
ملاحظة : إذا كان BigInt خارج نطاق النوع الهدف ، يتم طرح استثناء Out_of_range.
some_str = big1.to_string();
some_int = big1.to_int();
some_long = big1.to_long();
some_long_long = big1.to_long_long();abs احصل على القيمة المطلقة لـ BigInt .
big1 = abs(big2);big_pow10 الحصول على BigInt تساوي 10 exp .
big1 = big_pow10( 5000 ); // big1 = 10^5000 gcd احصل على أعظم مقسوم مشترك (GCD AKA. HCF) من اثنين BigInt s. يمكن أن تكون إحدى الوسائط عددًا صحيحًا (تصل إلى long long ) أو سلسلة ( std::string أو سلسلة حرفية).
big1 = gcd(big2, big3);
big1 = gcd(big2, 1234567890 );
big1 = gcd(big2, " 123456789012345678901234567890 " );
big1 = gcd( 1234567890 , big2);
big1 = gcd( " 123456789012345678901234567890 " , big2);lcm احصل على أقل متعددة شائعة (LCM) من اثنين BigInt s. يمكن أن تكون إحدى الوسائط عددًا صحيحًا (تصل إلى long long ) أو سلسلة ( std::string أو سلسلة حرفية).
big1 = lcm(big2, big3);
big1 = lcm(big2, 1234567890 );
big1 = lcm(big2, " 123456789012345678901234567890 " );
big1 = lcm( 1234567890 , big2);
big1 = lcm( " 123456789012345678901234567890 " , big2);pow احصل على قيمة القاعدة exp باعتبارها BigInt . يمكن أن تكون القاعدة إما BigInt أو عدد صحيح (تصل إلى long long ) أو سلسلة ( std::string أو سلسلة حرفية).
big1 = pow(big2, 789 );
big1 = pow( 987654321LL , 456 ); // suffix literal with LL to prevent conflicts
big1 = pow( " 1234567890 " , 123 );sqrt الحصول على الجذر التربيعي عدد صحيح من BigInt .
big1 = sqrt(big2);big_random احصل على BigInt عشوائي ، إما أن يحتوي على عدد عشوائي من الأرقام (حتى 1000) ، أو عدد محدد من الأرقام.
// 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 );نظرًا لأن هذا المشروع مبني كمكتبة رأس فقط ، فلا توجد ملفات مصدر. ومع ذلك ، هناك اختبارات وحدة لكل ملف رأس ينقسم إليه المشروع. يمكن تجميعها وبناءها إما من خلال سطر الأوامر ، أو باستخدام IDE التي لديها دعم مباشر لـ CMake (مثل Clion ، Creator) أو التي يمكن لـ CMake إنشاء ملفات المشروع (Visual Studio ، Eclipse CDT ، Code :: Blocks والمزيد).
على Linux و MacOS ، يمكنك تجميع وتشغيل الاختبارات باستخدام سطر الأوامر من دليل الجذر للمشروع.
make .make test .make release . سيظهر الملف الذي تم إنشاؤه في مجلد release .Settings > Build > CMake ، قم بتعيين Generation path build .بعد ذلك ، يمكنك ببساطة تحديد الهدف (اختبار الوحدة) الذي تريد إنشاءه/تشغيله ، وسوف تقوم IDE الخاص بك بالباقي.
في حالة عدم دعم IDE الخاص بك Cmake مباشرة ، ستحتاج إلى تشغيل cmake عبر سطر الأوامر مع الأعلام المناسبة لإنشاء ملفات المشروع لـ IDE. جربها ، ليس من المفترض أن تكون صعبة!
يرجى قراءة الإرشادات المساهمة للحصول على تفاصيل حول كيفية المساهمة في المشروع.
هذا المشروع مرخص بموجب شروط ترخيص معهد ماساتشوستس للتكنولوجيا.