علينا أن نعلم أن البرامج تحتاج أحيانًا إلى التعامل مع أعداد صحيحة كبيرة ، فماذا علينا أن نفعل؟ يمكننا استخدام فئة BigInteger في حزمة java.math لتوفير عمليات أعداد صحيحة دقيقة عن طريق إنشاء كائن BigInteger العشري باستخدام طريقة البناء العامة BigInteger(String val).
يمكن لهذا المنشئ إنشاء استثناء NumberFormatException ، وهذا يعني أنه إذا كانت معلمة السلسلة val تحتوي على أحرف غير رقمية، فسيحدث استثناء NumberFormatException.
الطرق الشائعة الاستخدام لفئة BigInteger هي كما يلي:
إرجاع مجموع كائن عدد صحيح كبير الحالي وكائن عدد صحيح كبير محدد بواسطة المعلمة.
إرجاع الفرق بين كائن عدد صحيح كبير الحالي وكائن عدد صحيح كبير محدد بواسطة المعلمة.
إرجاع منتج الكائن الصحيح الكبير الحالي والكائن الصحيح الكبير المحدد بواسطة المعلمة.
تُرجع حاصل قسمة الكائن الصحيح الكبير الحالي والكائن العددي الكبير المحدد بواسطة المعلمة.
إرجاع ما تبقى من الكائن الصحيح الكبير الحالي والكائن العددي الكبير المحدد بواسطة المعلمة.
إرجاع نتيجة المقارنة بين كائن العدد الصحيح الكبير الحالي والعدد الصحيح الكبير المحدد بواسطة المعلمة. القيمة المرجعة هي 1 أو -1 أو 0، والتي تشير على التوالي إلى أن الكائن ذو العدد الصحيح الكبير الحالي أكبر من أو أقل من أو يساوي. عدد صحيح محدد بواسطة المعلمة.
إرجاع القيمة المطلقة للكائن الصحيح الكبير الحالي.
إرجاع الكائن الصحيح الكبير الحالي المرفوع إلى القوة a.
إرجاع تمثيل السلسلة العشرية للكائن الصحيح الكبير الحالي.
تُرجع تمثيل السلسلة p-base للكائن الصحيح الكبير الحالي.
دعونا نلقي نظرة على طريقة استخدام فئة الأعداد الصحيحة الكبيرة لنأخذ مسألة إضافة أعداد كبيرة كمثال. فهي تتطلب حساب مجموع a + b، ومع ذلك، ينص هذا السؤال بوضوح على أن الرقمين a وb لا يتجاوزان 1000 رقم يمكنك التفكير فيها. كما نعلم، فإن الجراحة التجميلية العامة لن تناسبك بالتأكيد. إن جمع أرقام مكونة من 1000 رقم هو المليارات، ومع ذلك، فإن الطريقة التقليدية هي تخزين الأرقام في مصفوفات ومحاكاة العمليات مثل الجمع والحمل ، وهو أكثر إزعاجا للعمل. وإذا كنت تستخدم فئة الأعداد الصحيحة الكبيرة في Java، فإن الكود بسيط جدًا، كما يلي:
importjava.math.BigInteger;importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);BigIntegera=sc.nextBigInteger();BigIntegerb=sc.nextBigInteger();System.out .println(a.add(b));}}
يمكنك اختباره على جهاز الكمبيوتر الخاص بك وإكماله.
بالمقارنة مع اللغات الأخرى، مثل C وC++، فإن سرعة حل المشكلات سريعة جدًا.