Big Integer লেবেলটি সহ পোস্টগুলি দেখানো হচ্ছে৷ সকল পোস্ট দেখান
Big Integer লেবেলটি সহ পোস্টগুলি দেখানো হচ্ছে৷ সকল পোস্ট দেখান

মঙ্গলবার, ২৩ ফেব্রুয়ারি, ২০২১

Big Integer এবং Java

অনেক ক্ষেত্রেই আমাদেরকে এমন কিছু বড় সংখ্যা নিয়ে কাজ করতে হয় যেগুলো integer কিংবা long long ডাটা টাইপের মধ্যে রাখা সম্ভব নয় । সে সকল ক্ষেত্রে C++ প্রোগ্রামাররা string ব্যবহার করে কাজটি করে থাকে । কিন্তু string ব্যবহার করে Big Integer implement করা code এর size অনেক বড় এবং কোড লিখা অনেক সময়সাপেক্ষ ব্যাপার । এক্ষেত্রে Java তে Big Integer এর জন্য built-in class আছে । Java তে Big Integer কিভাবে ব্যবহার করতে হয় তা শিখার জন্য কিছু ভাল উৎস :


ক)  https://www.tutorialspoint.com/java/math/java_math_biginteger.htm

খ)  https://www.geeksforgeeks.org/biginteger-class-in-java/


এ সম্পর্কিত নিচের problem টি দেখা যাক :


Codeforces Gym : 112 - ab-ba


Problem Link: https://codeforces.com/problemsets/acmsguru/problem/99999/112


এখানে বলা হয়েছে a ও b দুটি সংখ্যা দেওয়া আছে । আমাদেরকে ab-ba  এর মান print করতে হবে।

এখানে a ও b উভয়েরই মান ১০০ পর্যন্ত হতে পারে। ১০০১০০ কে তো আর integer কিংবা long long এ রাখা যাবে না। তাই এক্ষেত্রে আমাদেরকে BigInteger ব্যবহার করতে হবে। নিচে সমাধান দেওয়া হল: 


Codeforces Gym : 112 - ab-ba solution

import java.util.Scanner ;
import java.math.BigInteger;
public class Main{
  public static void main(String[] args){
    int a,b;
    Scanner input = new Scanner(System.in);
    a = input.nextInt();
    b = input.nextInt();
    BigInteger A = BigInteger.valueOf(a);
    BigInteger B= BigInteger.valueOf(b);
    System.out.printf("%d",A.pow(b).subtract(B.pow(a)));
   
 }
}


আরও কিছু Big integer সম্পর্কিত সমস্যা : Uva 10183 , URI 1279 , Project Euler Problem 13 , Project Euler Problem 15 , Project Euler Problem 16