اذهب إلى المحتوى
  • 0

التعامل مع الأعداد الضخمة و الحسابات في جافا Java

Areeg Abdulah

السؤال

Recommended Posts

  • 1

في حال كانت القيم التي تتعامل معها أعداد صحيحة Integer، استخدم الصف BigInteger لحل مشكلتك فهو صف مخصص للتعامل مع الأرقام الضخمة كالتالي:

import java.math.BigInteger;
BigInteger Bigint = new BigInteger("88888999999999999999999999"); # أدخل الرقم كسلسلة نصية

في حال كانت بياناتك أعداد عشرية، استخدم الصف BigDemical بنفس الطريقة السابقة:

import java.math.BigDemical;
BigDemical Bigdem = new BigDemical("88888999999999999999999.2123"); # أدخل الرقم كسلسلة نصية

للقيام بعمليات الجمع والضرب والقسمة..إلخ..  في هذه الحالة نستخدم توابع جاهزة معرفة من أجل هذه الكلاسات مثال:

/*
BigInteger x = new BigInteger("1");
BigInteger y = new BigInteger("5");
الجمع يتم كالتالي
BigInteger z=x.add(y);
الطرح
BigInteger w=x.subtract(y);
الضرب
BigInteger k=x.multiply(y);
القسمة
BigInteger k=x.divide(y);
*/


# مثال لتابع يحسب العاملي لعدد ما
import java.math.BigInteger;

public class BigNumbers
{
	
	static BigInteger factorial(int m)
	{
		
		BigInteger x = new BigInteger("1");
		for (int i = 2; i <= m; i++)
			x = x.multiply(BigInteger.valueOf(i));  # BigInteger.valueOf(i) هذه التعليمة لتحويل نمط المتغير

		return x;
	}

	
	public static void main(String args[])
	{
		System.out.println(factorial(50));
	}
}

 

تم التعديل في بواسطة Ali Haidar Ahmad
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

إن كان عدد الخانات كبير جداً يمكنك استخدام الصنف Big Integer للأعداد الصحيحة و Big Decimal للأعدادا العشرية في جافا والذي يحول القيم الرقمية لسلاسل نصية و يتعامل بها على هذا الأساس:

مثال عن Big Decimal:

import java.math.BigDecimal;
 
public class BigDecimalExample {
     
    public static void main(String[] args) {
         
        // تعريف عددين new BigDecimals
        BigDecimal BigDec1 = new BigDecimal("192438126384712332");
        BigDecimal BigDec2 = new BigDecimal("112213664998918253");
 
        // جمع
        BigDec1 = BigDec1.add(BigDec2);
        System.out.println("BigDec1 = " + BigDec1);
 
        // جداء
        BigDec1 = BigDec1.multiply(BigDec2);
        System.out.println("BigDec1 = " + BigDec1);
 
        // طرح
        BigDec1 = BigDec1.subtract(BigDec2);
        System.out.println("BigDec1 = " + BigDec1);
 
        // قسمة
        BigDec1 = BigDec1.divide(BigDec2);
        System.out.println("BigDec1 = " + BigDec1);
 
        // القوة power of 2
        BigDec1 = BigDec1.pow(2);
        System.out.println("BigDec1 = " + BigDec1);
 
        // القيم السالبة BigDecimal1
        BigDec1 = BigDec1.negate();
        System.out.println("BigDec1 = " + BigDec1);
    }
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...