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

C++ में निकाले जाने वाले बक्सों की संख्या ज्ञात कीजिए

इस समस्या में, हमें एक सरणी arr [] दिया जाता है जिसमें प्रत्येक तत्व बक्सों के ढेर (प्रत्येक इकाई की ऊँचाई) का प्रतिनिधित्व करता है। हमारा कार्य हटाए जाने वाले बक्सों की संख्या ज्ञात करना . है ।

व्यक्ति बक्से के ढेर की ऊंचाई पर सरणी के सूचकांक 0 पर खड़ा है और उसे सरणी के अंत में जाने की जरूरत है। एक ढेर से दूसरे ढेर में जाने की शर्त दूसरे ढेर पर कूदने की है।

कूद तभी संभव है जब अगला ढेर उसी ऊंचाई पर हो या उससे कम ऊंचाई पर हो। यदि अगले ढेर की ऊंचाई अधिक है तो व्यक्ति को अगले ढेर से बक्से निकालने की जरूरत है, जब तक कि ऊंचाई बराबर न हो जाए। हमें उन बक्सों की कुल संख्या ज्ञात करनी होगी जिन्हें पहले बॉक्स से अंतिम बॉक्स में जाते समय हटा दिया जाएगा।

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

Input : arr[] = {5, 7, 3 , 1, 2}
Output : 3

स्पष्टीकरण

प्रारंभ में, व्यक्ति की ऊंचाई 5 होती है।

चरण 1 − दूसरे स्थान पर जाने के लिए जिसकी ऊंचाई 7 है, व्यक्ति को 2 बक्से निकालने होंगे।

चरण 2 - ऊंचाई 3 पर तीसरे स्थान पर जाने के लिए, कोई भी बॉक्स नहीं हटाया जाता है।

चरण 3 - ऊंचाई 1 पर अगले स्थान पर जाने के लिए, कोई भी बॉक्स नहीं हटाया जाता है।

चरण 4 - ऊंचाई 2 पर अगली स्थिति में जाने के लिए, एक बॉक्स हटा दिया जाता है। इससे हटाए गए बक्सों की संख्या 3 के बराबर हो जाती है।

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

समस्या का एक सरल समाधान यह है कि सरणी को शुरू से अंत तक ट्रेस किया जाए और जाँच की जाए कि अगला तत्व वर्तमान तत्व से बड़ा है या नहीं। यदि हाँ, तो उनके अंतर को निकाल दिए गए बक्सों . में जोड़ें वेरिएबल जो हटाए जाने वाले बक्से की कुल संख्या रखता है। अंत में, हम बक्से निकाले गए लौटा देंगे ।

उदाहरण

हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम

#include <iostream>
using namespace std;
int findBoxesRemoved(int arr[], int n){
   int boxesRemoved = 0;
   for (int i = 0; i < n-1; i++) {
      if (arr[i] < arr[i+1])
         boxesRemoved += (arr[i+1] - arr[i]);
   }
   return boxesRemoved;
}
int main(){
   int arr[] = { 5, 7, 3 , 1, 2, 6 };
   int n = sizeof(arr) / sizeof(arr[0]);
   cout<<"The total number of boxes to be removed to reach the end is "<<findBoxesRemoved(arr, n);
   return 0;
}

आउटपुट

The total number of boxes to be removed to reach the end is 7

  1. C++ का उपयोग करके पंचकोणीय पिरामिड संख्या ज्ञात कीजिए

    एक पंचकोणीय पिरामिड संख्या एक पंचकोणीय आधार पिरामिड में मदों की संख्या के बराबर होती है। नीचे कुछ पंचकोणीय संख्याओं को देखें। N तक पंचकोणीय संख्याओं का योग Nवीं पंचकोणीय पिरामिड संख्या के बराबर होता है। इस लेख में, हम उदाहरण के लिए, Nth पंचकोणीय पिरामिड संख्या खोजने पर चर्चा करेंगे Input : N = 4

  1. C++ का उपयोग करके एक स्ट्रिंग के सबस्ट्रिंग की संख्या ज्ञात करें

    इस लेख में, आप किसी दिए गए स्ट्रिंग में बनाए जा सकने वाले सबस्ट्रिंग (गैर-रिक्त) की संख्या को खोजने के तरीकों के बारे में जानेंगे। Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, &lsqu

  1. C++ . का उपयोग करके स्टॉपिंग स्टेशनों की संख्या ज्ञात कीजिए

    बिंदु X और Y के बीच मध्यवर्ती ट्रेन स्टेशनों की संख्या n है। गिनें कि अलग-अलग तरीकों से ट्रेनों को s स्टेशनों पर रुकने के लिए व्यवस्थित किया जा सकता है जैसे कि कोई भी दो स्टेशन एक दूसरे के बगल में नहीं हैं। तो इस लेख में, हम स्टॉपिंग स्टेशनों की संख्या का पता लगाने के लिए हर संभव तरीके की व्याख्या क