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

C++ में बल्ब स्विचर II


मान लीजिए एक कमरे में n बल्ब हैं जो शुरू में चालू हैं और दीवार पर 4 बटन हैं। बटनों पर ठीक m अज्ञात संचालन करने के बाद, हमें n बल्बों की कितनी अलग-अलग स्थितियां हो सकती हैं, यह लौटाना है। n बल्बों को [1, 2, 3, ..., n] के रूप में लेबल किया गया है, इन 4 बटनों के कार्य इस प्रकार हैं:

  • सभी बल्बों को टॉगल करें।
  • सम संख्या वाले बल्बों को टॉगल करें।
  • विषम संख्या वाले बल्बों को टॉगल करें।
  • (3k + 1) संख्या वाले बल्बों को टॉगल करें, k = 0, 1, 2, ...

अब यदि n = 3 और m = 1, तो 4 संचालन होंगे: [बंद, चालू, बंद], [चालू, बंद, चालू], [बंद, बंद, बंद], [बंद, चालू, चालू]

हल का दृष्टिकोण

इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:

  • यदि n = 0 या m = 0, तो 1 लौटाएं
  • यदि n = 1, तो 2 लौटाएं
  • यदि n = 2, तो m = 1 होने पर 3 लौटाएं, अन्यथा 4 लौटाएं
  • यदि m = 1, तो 4 लौटाएं
  • यदि m = 2, तो 7 लौटाएं, अन्यथा 8 लौटाएं

उदाहरण

#include <bits/stdc++.h> 
using namespace std; 

class Solution { 
public: 
    int flipLights(int n, int m) { 
        if (m == 0 || n == 0) return 1; 
        if (n == 1) return 2; 
        if (n == 2) return m == 1 ? 3 : 4; 
        if (m == 1) return 4; 
        return m == 2 ? 7 : 8; 
    } 
}; 

int main(){ 
    Solution ob; 
    cout << (ob.flipLights(3, 1)); 
}

इनपुट

3 1

आउटपुट

4

  1. C++ में बल्ब स्विचर III C++ में बल्ब स्विचर III

    मान लीजिए हमारे पास n बल्ब्स वाला एक कमरा है, ये 1 से n तक नंबरेड हैं, बाएं से दाएं एक पंक्ति में व्यवस्थित। प्रारंभ में, सभी बल्ब्स बंद हैं। मोमेंट k पर (k के लिए 0 से n-1 की रेंज में), हम light[k] बल्ब को ऑन करते हैं। एक बल्ब केवल तभी नीला होता है जब वह ऑन हो और उसके सभी पिछले बल्ब (बाएं तरफ) भी

  1. - C++ में void फ़ंक्शन्स से रिटर्न

    void फ़ंक्शन्स को void कहा जाता है क्योंकि वे कुछ भी वापस नहीं करते हैं। एक void फ़ंक्शन कुछ भी वापस नहीं कर सकता यह कथन हमेशा सच नहीं है। एक void फ़ंक्शन से, हम कोई मान वापस नहीं कर सकते, लेकिन हम मान के अलावा कुछ वापस कर सकते हैं। उनमें से कुछ नीचे दिए गए हैं। एक void फ़ंक्शन रिटर्न कर सकता है एक

  1. - C++ में "ऑब्जेक्ट कैसे लौटाएं"?

    एक ऑब्जेक्ट क्लास का एक इंस्टेंस है। मेमोरी केवल तब आवंटित होती है जब एक ऑब्जेक्ट बनाया जाता है न कि जब क्लास परिभाषित की जाती है। एक ऑब्जेक्ट को फंक्शन द्वारा return कीवर्ड का उपयोग करके लौटाया जा सकता है। इसे प्रदर्शित करने वाला एक प्रोग्राम निम्नलिखित है − उदाहरण #include <iostream> u