Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

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. C++ में अनसाइन्ड इंटीजर के लिए रीस्टोरिंग डिवीजन एल्गोरिथम C++ में अनसाइन्ड इंटीजर के लिए रीस्टोरिंग डिवीजन एल्गोरिथम

    एक अनसाइन्ड इंटीजर को डिवीजन एल्गोरिथम का उपयोग करके विभाजित करने पर चर्चा करें। कुछ डिवीजन एल्गोरिथम कागज पर लागू होते हैं, और अन्य डिजिटल सर्किट पर लागू होते हैं। डिवीजन एल्गोरिथम दो प्रकार के होते हैं: स्लो डिवीजन एल्गोरिथम और फास्ट डिवीजन एल्गोरिथम। स्लो डिवीजन एल्गोरिथम में रीस्टोरिंग, नॉन-परफ

  1. C++ में बाइनरी ट्री में चिल्ड्रन सम गुण की जांच C++ में बाइनरी ट्री में चिल्ड्रन सम गुण की जांच

    मान लीजिए हमारे पास एक बाइनरी ट्री है। बाइनरी ट्री वैध है जब यह निम्न गुण को पूरा करता है।प्रत्येक नोड में डेटा मान अपने बाएं और दाएं बच्चों के मानों के योग के समान होना चाहिए। यदि किसी भी तरफ कोई बच्चे नहीं हैं, तो इसे 0 माना जाएगा।मान लीजिए एक ट्री नीचे जैसा मौजूद है, जो दिए गए गुण को पूरा करता है

  1. C++ में सरणी के एलिमेंट्स का गुणनफल C++ में सरणी के एलिमेंट्स का गुणनफल

    पूर्णांक एलिमेंट्स की एक सरणी दी गई है और कार्य सरणी के एलिमेंट्स को गुणा करना और प्रदर्शित करना है। उदाहरण इनपुट-: arr[]={1,2,3,4,5,6,7} आउटपुट-: 1 x 2 x 3 x 4 x 5 x 6 x 7 = 5040 इनपुट-: arr[]={3, 4,6, 2, 7, 8, 4} आउटपुट-: 3 x 4 x 6 x 2 x 7 x 8 x 4 = 32256 नीचे दिए गए प्रोग्राम में उपयोग किया गया द