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

बिटवाइज़ और (या &) C++ में एक श्रेणी के

इस समस्या में, हमें दो पूर्णांक मान a और b दिए गए हैं। और हमारा काम है a से b तक की बिटवाइज और (&) रेंज का पता लगाना . इसका मतलब है कि हमें a &a+1 &a+2 &… b-1 &b का मान निकालना होगा।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट - ए =3 , बी =8

आउटपुट - 0

स्पष्टीकरण - 3 और 4 और 5 और 6 और 7 और 8 =0

समस्या को हल करने के लिए, एक सरल समाधान है a से शुरू करना और बिटवाइज़ और सभी संख्याओं को एक से b तक बढ़ाना।

अधिक प्रभावी समाधान,

यह एक अधिक प्रभावी उपाय है, इसका उपयोग करके किया जा सकता है -

चरण1 - फ्लिप एलएसबी ऑफ बी.

चरण2 - संख्या की तुलना a और b से करें, जांचें कि क्या यह श्रेणी में है,

चरण 2.1 - यदि संख्या एक फ्लिप से अधिक है तो इसका एलएसबी लाभ होता है।

चरण 2.2 - यदि यह एक से अधिक नहीं है तो संख्या =परिणाम।

अब, चलो काम करने में उपरोक्त एल्गोरिथम देखें -

उदाहरण - ए =3 और बी =8.

समाधान -

चरण1 -बी =8 (1000), एलएसबी फ्लिपिंग जो संख्या में केवल एक है। संख्या 0000 हो जाती है यानी 0

चरण2 - 0 3 से कम है, 0 परिणाम है।

उदाहरण

अब, समस्या को हल करने के लिए कोड देखते हैं,

#include <stdio.h>
int main(){
   long a, b;
   a = 3; b = 8;
   do{
      b -= (b & -b);
   }while(a < b);
   printf("%li", b);
}

आउटपुट

0

  1. न्यूनतम धनात्मक पूर्णांक C से विभाज्य है और C++ में श्रेणी [A, B] में नहीं है

    मान लीजिए कि हमारे पास तीन पूर्णांक ए, बी, और सी हैं। हमें एक न्यूनतम पूर्णांक एक्स खोजना है, जैसे कि एक्स मॉड सी =0, और एक्स [ए, बी] की सीमा में नहीं है। यदि A, B और C के मान क्रमशः 5, 10 और 4 हैं, तो X का मान 4 होगा। आइए समाधान प्राप्त करने के चरणों को देखें - कदम - यदि C, [A, B] की सीमा में नह

  1. अधिकतम धनात्मक पूर्णांक C से विभाज्य है और C++ में [A, B] श्रेणी में है

    यहां हम एक दिलचस्प समस्या देखेंगे। आइए मान लें कि हमारे पास तीन पूर्णांक ए, बी, और सी हैं। हमें एक न्यूनतम पूर्णांक एक्स ढूंढना है, जैसे कि एक्स मॉड सी =0, और एक्स [ए, बी] की सीमा में नहीं है। यदि A, B और C के मान क्रमशः 5, 10 और 4 हैं, तो X का मान 4 होगा। हल प्राप्त करने के लिए हमें इन चरणों का पाल

  1. बिटवाइज़ और C++ में क्या है?

    बिटवाइज AND ऑपरेटर (&) पहले ऑपरेंड के प्रत्येक बिट की तुलना दूसरे ऑपरेंड के संगत बिट से करता है। यदि दोनों बिट्स 1 हैं, तो संबंधित परिणाम बिट को 1 पर सेट किया जाता है। अन्यथा, संबंधित परिणाम बिट 0 पर सेट होता है। बिटवाइज़ समावेशी और ऑपरेटर के दोनों ऑपरेंड अभिन्न प्रकार के होने चाहिए। उदाहरण के लिए,