ধরুন আমরা A এবং B দুটি সংখ্যাকে গুণ করার পর ফলাফল বের করতে চাই। গুণিত মানটি 64-বিট পূর্ণসংখ্যা অতিক্রম করবে কি না তা আমাদের পরীক্ষা করতে হবে। যদি আমরা 100, এবং 200 গুন করি, এটি অতিক্রম করবে না, যদি আমরা 10000000000 এবং -10000000000 গুন করি তবে এটি উপচে পড়বে৷
এটি পরীক্ষা করার জন্য, আমাদের কিছু পদক্ষেপ অনুসরণ করতে হবে। এগুলো নিচের মত -
পদক্ষেপ −
-
সংখ্যার কেউ যদি 0 হয়, তাহলে তা অতিক্রম করবে না
-
অন্যথায়, যদি একটি দ্বারা দুই ভাগের গুণফল অন্যটির সমান হয়, তাহলে তা অতিক্রম করবে না
-
অন্য কিছু ক্ষেত্রে, এটি অতিক্রম করবে৷
৷
উদাহরণ
#include <iostream> #include <cmath> using namespace std; bool isMulOverflow(long long A, long long B) { if (A == 0 || B == 0) return false; long long result = A * B; if (A == result / B) return false; else return true; } int main() { long long a = 10000000000 , b = -10000000000; if(isMulOverflow(a, b)){ cout <<"It will overflow"; } else{ cout <<"It will not overflow"; } }
আউটপুট
It will overflow