কম্পিউটার

C++ এ গুণনের উপর পূর্ণসংখ্যা ওভারফ্লো পরীক্ষা করুন


ধরুন আমরা 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

  1. 0 যোগফলের জন্য ক্যোয়ারী চেক করতে C++ কোড

  2. C++ এ স্বাক্ষরবিহীন পূর্ণসংখ্যার জন্য বিভাগ অ্যালগরিদম পুনরুদ্ধার করা হচ্ছে

  3. C++ এ বাইনারি ট্রিতে চিলড্রেন সাম প্রপার্টি চেক করুন

  4. অ্যারের উপাদানগুলির গুণনের জন্য C++ প্রোগ্রাম