C++ এ, আমরা বুস্ট লাইব্রেরি ব্যবহার করে বড় সংখ্যা ব্যবহার করতে পারি। এই C++ বুস্ট লাইব্রেরিটি ব্যাপকভাবে ব্যবহৃত লাইব্রেরি। এটি বিভিন্ন বিভাগের জন্য ব্যবহৃত হয়। এটিতে অ্যাপ্লিকেশনের বড় ডোমেন রয়েছে। উদাহরণস্বরূপ, বুস্ট ব্যবহার করে, আমরা বড় সংখ্যা ব্যবহার করতে পারি যেমন 2 64 C++ এ।
এখানে আমরা বুস্ট লাইব্রেরির কিছু উদাহরণ দেখব। আমরা বড় পূর্ণসংখ্যা ডেটাটাইপ ব্যবহার করতে পারি। আমরা বিভিন্ন ডেটাটাইপ যেমন int128_t, int256_t, int1024_t ইত্যাদি ব্যবহার করতে পারি। এটি ব্যবহার করে আমরা সহজেই 1024 পর্যন্ত নির্ভুলতা পেতে পারি।
প্রথমে আমরা বুস্ট লাইব্রেরি ব্যবহার করে দুটি বিশাল সংখ্যাকে গুণ করছি।
উদাহরণ
#include<iostream> #include <boost/multiprecision/cpp_int.hpp> using namespace boost::multiprecision; using namespace std; int128_t large_product(long long n1, long long n2) { int128_t ans = (int128_t) n1 * n2; return ans; } int main() { long long num1 = 98745636214564698; long long num2 = 7459874565236544789; cout << "Product of "<< num1 << " * "<< num2 << " = " << large_product(num1,num2); }
আউটপুট
Product of 98745636214564698 * 7459874565236544789 = 736630060025131838840151335215258722
আরেকটি ধরনের ডেটাটাইপ হল আরবিট্রারি প্রিসিসন ডেটাটাইপ। তাই আমরা cpp_int ডেটাটাইপ ব্যবহার করে যেকোনো নির্ভুলতা ব্যবহার করতে পারি। এটি রানটাইমে স্বয়ংক্রিয়ভাবে নির্ভুলতা নির্ধারণ করে।
উদাহরণ
#include<iostream> #include <boost/multiprecision/cpp_int.hpp> using namespace boost::multiprecision; using namespace std; cpp_int large_fact(int num) { cpp_int fact = 1; for (int i=num; i>1; --i) fact *= i; return fact; } int main() { cout << "Factorial of 50: " << large_fact(50) << endl; }
আউটপুট
Factorial of 50: 30414093201713378043612608166064768844377641568960512000000000000