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