
- ทำงานระหว่างดำเนินการ?
ดาวน์โหลดไฟล์ส่วนหัวแบบรวมเดียวไปยังตำแหน่งภายใต้เส้นทางรวมของคุณ จากนั้น #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 หรือ 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 หรือ 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 แบบสุ่มซึ่งมีจำนวนตัวเลขสุ่ม (สูงสุด 1,000) หรือตัวเลขจำนวนเฉพาะ
// 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, QT Creator) หรือ CMAKE ที่สามารถสร้างไฟล์โครงการ (Visual Studio, Eclipse CDT, Code :: Blocks และอื่น ๆ )
บน Linux และ MacOS คุณสามารถรวบรวมและเรียกใช้การทดสอบโดยใช้บรรทัดคำสั่งจากไดเรกทอรีรากของโครงการ
makemake testmake release ไฟล์ที่สร้างขึ้นจะปรากฏในโฟลเดอร์ releaseSettings > Build > CMake ตั้งค่า Generation path เพื่อ buildจากนั้นคุณสามารถเลือกเป้าหมาย (ทดสอบหน่วย) ที่คุณต้องการสร้าง/เรียกใช้และ IDE ของคุณจะทำส่วนที่เหลือ
ในกรณีที่ IDE ของคุณไม่รองรับ CMAKE โดยตรงคุณจะต้องเรียกใช้ cmake ผ่านบรรทัดคำสั่งด้วยธงที่เหมาะสมเพื่อสร้างไฟล์โครงการสำหรับ IDE ของคุณ ลองดูมันไม่ควรยาก!
โปรดอ่านแนวทางที่มีส่วนร่วมสำหรับรายละเอียดเกี่ยวกับวิธีการมีส่วนร่วมในโครงการ
โครงการนี้ได้รับใบอนุญาตภายใต้ข้อกำหนดของใบอนุญาต MIT