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

C++ में व्याकरण में K-वें प्रतीक

मान लीजिए कि पहली पंक्ति में, हमारे पास 0 है। अब प्रत्येक बाद की पंक्ति में, हम पिछली पंक्ति को देखते हैं और 0 की प्रत्येक घटना को 01 से प्रतिस्थापित करते हैं, और 1 की प्रत्येक घटना को 10 से प्रतिस्थापित करते हैं। मान लीजिए कि हमारे पास N पंक्तियाँ और अनुक्रमणिका K है, तो हम पंक्ति N में K-वें अनुक्रमित प्रतीक खोजना होगा। (K के मान 1-अनुक्रमित हैं।) (1 अनुक्रमित)। तो अगर N =4 और K =5, तो आउटपुट 1 होगा। ऐसा इसलिए है क्योंकि -

  • पंक्ति 1:0
  • पंक्ति 2:01
  • पंक्ति 3:0110
  • पंक्ति 4:01101001

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • मान लीजिए कि विधि का नाम kthGrammar है। यह N और K लेता है।
  • अगर N 1 है, तो 0 लौटाएं
  • यदि k सम है, तो 1 लौटाएं जब kthGrammar(N – 1, K/2) 0 हो, अन्यथा 0
  • अन्यथा kthGrammar(N – 1, (K + 1)/2) लौटाएं

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int kthGrammar(int N, int K) {
      if(N == 1) return 0;
      if(K % 2 == 0){
      return kthGrammar(N - 1, K / 2) == 0 ? 1 : 0;
      }else{
         return kthGrammar(N - 1, (K + 1) / 2);
      }
   }
};
main(){
   Solution ob;
   cout << (ob.kthGrammar(4, 5));
}

इनपुट

4
5

आउटपुट

1

  1. C++ में स्ट्रिंग के रूप में दर्शाए गए ट्री में k-वें स्तर पर नोड्स का गुणनफल

    एक स्ट्रिंग प्रारूप में डेटा के साथ नोड्स के पेड़ के साथ दिया गया और कार्य एक बाइनरी ट्री में k-वें स्तर पर नोड्स के उत्पाद को खोजना है। एक पेड़ के प्रत्येक नोड में तीन चीजें होती हैं यानी डेटा भाग, बाएँ सबट्री के लिए लेफ्ट पॉइंटर और राइट सबट्री के लिए राइट पॉइंटर। बाइनरी ट्री का स्तर 0 से शुरू होत

  1. सी++ में एच-इंडेक्स

    मान लीजिए कि हमारे पास एक शोधकर्ता के उद्धरणों की एक श्रृंखला है (उद्धरण गैर-ऋणात्मक पूर्णांक हैं)। हमें शोधकर्ता के एच-इंडेक्स की गणना करने के लिए एक फ़ंक्शन को परिभाषित करना होगा। एच-इंडेक्स की परिभाषा के अनुसार:एक वैज्ञानिक के पास इंडेक्स एच होता है यदि उसके एन पेपर में से प्रत्येक में कम से कम ए

  1. C++ में '&' सिंबल का क्या उपयोग है?

    &प्रतीक का प्रयोग C++ में एक ऑपरेटर के रूप में किया जाता है। इसका उपयोग 2 अलग-अलग जगहों पर किया जाता है, एक बिटवाइज़ और ऑपरेटर के रूप में और दूसरा ऑपरेटर के पॉइंटर एड्रेस के रूप में। Bitwise AND बिटवाइज़ और ऑपरेटर (&) पहले ऑपरेंड के प्रत्येक बिट की तुलना दूसरे ऑपरेंड के उस बिट से करता है। यदि दोनों