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

C++ में एलिमिनेशन गेम

मान लीजिए कि हमारे पास 1 से n तक क्रमबद्ध पूर्णांकों की एक सूची है। यानी बाएं से शुरू होकर दाएं पर समाप्त होने पर, हमें सूची के अंत तक पहुंचने तक पहले नंबर और बाद में हर दूसरे नंबर को हटाना होगा। हम पिछले चरण को फिर से दोहराएंगे, लेकिन इस बार दाएं से बाएं, सबसे दाएं नंबर और बाकी सभी नंबरों को हटा दें। हम फिर से चरणों को दोहराएंगे, बारी-बारी से बाएं से दाएं और दाएं से बाएं, जब तक कि एक एकल संख्या न रह जाए। हमें अंतिम संख्या ज्ञात करनी है जो n लंबाई की सूची से शुरू होती है।

तो अगर इनपुट n =9 जैसा है, तो चरण इस प्रकार होंगे -

  • 1 ,2,3 ,4,5 ,6,7 ,8,9

  • 2,4 ,6,8

  • 2 ,6

  • 6

तो उत्तर 6 होगा।

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

  • बाएं:=1, सिर:=1, चरण:=1, रेम:=n

  • जबकि रेम> 1

    • यदि बाईं ओर शून्य नहीं है या रेम विषम है, तो सिर:=सिर + चरण

    • चरण:=चरण * 2

    • बाएँ :=बाएँ का उलटा

    • रेम :=रेम / 2

  • वापसी सिर

उदाहरण (C++)

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

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int lastRemaining(int n) {
      int head = 1;
      int step = 1;
      int rem = n;
      int left = 1;
      while(rem > 1){
         if(left || rem % 2 == 1){
            head += step;
         }
         step *= 2;
         left = !left;
         rem /= 2;
      }
      return head;
   }
};
main(){
   Solution ob;
   cout << (ob.lastRemaining(9));
}

इनपुट

9

आउटपुट

6

  1. सी++ में जंप गेम IV

    मान लीजिए कि हमारे पास arr नामक पूर्णांकों की एक सरणी है। हम शुरुआत में इंडेक्स 0 पर हैं। एक चरण में हम इंडेक्स i से i + x पर जा सकते हैं जहां:i + x =0. j जहां:arr[i] और arr[j] समान हैं और i और j समान नहीं हैं। यहाँ n सरणी का आकार है। सरणी के अंतिम सूचकांक तक पहुंचने के लिए हमें न्यूनतम चरणों की संख

  1. सी++ में जंप गेम वी

    मान लीजिए कि हमारे पास पूर्णांकों की एक सरणी है जिसे arr और एक पूर्णांक d कहा जाता है। एक चरण में हम इंडेक्स i से − . पर जा सकते हैं i + x जहां:i + x

  1. C++ में अधिकतम बाइनरी ट्री

    मान लीजिए कि हमारे पास एक पूर्णांक सरणी है। उस सरणी के सभी तत्व अद्वितीय हैं। इस सरणी पर अधिकतम वृक्ष निर्माण को निम्नानुसार परिभाषित किया गया है - जड़ सरणी में अधिकतम संख्या धारण करेगा। लेफ्ट सबट्री सबएरे के बायीं ओर से निर्मित अधिकतम ट्री है जिसे अधिकतम संख्या से विभाजित किया जाता है। दाय