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

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 

কোন মন্তব্য নেই:

একটি মন্তব্য পোস্ট করুন