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

C++ में y mod (पावर x तक बढ़ा हुआ 2) का मान ज्ञात कीजिए

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

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

Input : x = 2, y = 19
Output : 3

स्पष्टीकरण -

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

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

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

समस्या को हल करने का एक अन्य तरीका लॉग का उपयोग करना है। y <2 x . के मान के लिए , शेष y है। इस मामले के लिए हमारे पास है

लॉग<उप>2 वाई <एक्स

साथ ही, x का अधिकतम मान 63 हो सकता है जिसका y के लिए मान अतिप्रवाह होगा। इसलिए, mod 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<<"The value of y mod 2^x is "<<findModVal(y, x);
   return 0;
}

आउटपुट

The value of y mod 2^x is 909

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

    मान लीजिए कि हमारे पास एक बाइनरी ट्री है, तो हमें उस पेड़ के प्रत्येक स्तर के सबसे बड़े तत्वों को खोजना होगा। तो अगर पेड़ जैसा है - तब आउटपुट [3,5,8] . होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - एक सरणी परिभाषित करें जिसे उत्तर कहा जाता है एक पुनरावर्ती फ़ंक्शन को परिभाषित कर

  1. C++ में बॉटम लेफ्ट ट्री वैल्यू का पता लगाएं

    मान लीजिए कि हमारे पास एक बाइनरी ट्री है। हमें उस पेड़ की अंतिम पंक्ति का सबसे बाईं ओर का मान ज्ञात करना है। तो अगर पेड़ जैसा है - तब आउटपुट 7 होगा, क्योंकि अंतिम पंक्ति [7, 4] है, और सबसे बाएं तत्व 7 है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - प्रारंभ में ans और lvl वैरिएबल को 0

  1. C++ प्रोग्राम किसी वर्ण का ASCII मान ज्ञात करने के लिए

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