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

C++ में y mod (2 की घात x) का मान ज्ञात करें


इस समस्या में, हमें दो मान x और y दिए गए हैं। हमारा कार्य y mod (2 की घात x) का मान ज्ञात करना है।

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

इनपुट : x = 2, y = 19 आउटपुट : 3

व्याख्या −

y % 2x = 19 % 22 = 19 % 4 = 3 

समाधान दृष्टिकोण

समस्या का एक सरल समाधान pow() फ़ंक्शन का उपयोग करके 2x का मान सीधे परिकलित करना और फिर y % 2x का मान ज्ञात करना है।

समस्या को हल करने का एक अन्य दृष्टिकोण लॉग का उपयोग करना है। y < 2x के मान के लिए, शेषफल y है। इस मामले में हमारे पास है

Log2y < x

साथ ही, x का अधिकतम मान 63 हो सकता है जिसका मान y के लिए ओवरफ्लो होगा। इसलिए, मॉड x के बराबर है।

इन सभी को ध्यान में रखते हुए, हमारे पास ये तीन मामले हैं −

if(log y < x) -> return y else if(x > 63) -> return y else -> return (y % pow(2, x))

उदाहरण

हमारे समाधान के कार्य को दर्शाने वाला प्रोग्राम

#include <bits/stdc++.h> using namespace std; long long int findModVal(long long int y, int x){ if (log2(y) < x) return y; if (x > 63) return y; return (y % (1 << x)); } int main(){ long long int y = 82829; int x = 12; cout<<"y mod 2^x का मान है "<<findModVal(y, x); return 0; }

आउटपुट

y mod 2^x का मान है 909 

  1. C++ में प्रत्येक ट्री पंक्ति का सबसे बड़ा मान C++ में प्रत्येक ट्री पंक्ति का सबसे बड़ा मान

    मान लीजिए हमारे पास एक बाइनरी ट्री है। हमें ट्री के प्रत्येक लेवल का सबसे बड़ा तत्व ढूंढना है। उदाहरण: ट्री [1,3,2,5,3,null,9] के लिए आउटपुट [1,3,9] होगा (लेवल 0: 1, लेवल 1: max(3,2)=3, लेवल 2: max(5,3,9)=9)। DFS + लेवल ट्रैकिंग एक सरणी ans बनाएँ जहाँ ans[level] उस लेवल का अधिकतम मान स्टोर करे।

  1. C++ में बाइनरी ट्री का बॉटम लेफ्ट मान C++ में बाइनरी ट्री का बॉटम लेफ्ट मान

    मान लीजिए हमारे पास एक बाइनरी ट्री है। हमें ट्री की अंतिम पंक्ति (सबसे गहरे लेवल) का सबसे बायाँ मान ढूंढना है। उदाहरण: ट्री [3,5,1,6,2,0,8,null,null,7,4] के लिए अंतिम पंक्ति [7,4] है, इसलिए बॉटम लेफ्ट मान 7 है। DFS + गहराई ट्रैकिंग दो वेरिएबल्स ans और maxLevel (प्रारंभ में -1) रखें। रिकर्सिव sol

  1. - C++ में किसी कैरेक्टर का ASCII मान खोजने का प्रोग्राम

    ASCII (अमेरिकन स्टैंडर्ड कोड फॉर इंफॉर्मेशन इंटरचेंज) टेबल में 128 कैरेक्टर्स होते हैं जिनके मान 0 से 127 तक होते हैं। विभिन्न कैरेक्टर्स के कुछ ASCII मान निम्नलिखित हैं: कैरेक्टर ASCII मान A 65 a 97 Z 90 z 122 $ 36 & 38 ? 63 किसी कैरेक्टर का ASCII मान खोजने का एक प्रोग्राम