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

सी ++ में दिए गए सरणी के निर्माण के लिए प्रत्यय वृद्धि/कमी संचालन की गणना

हमें एक लक्ष्य सरणी गिरफ्तारी [] दी गई है जिसमें सकारात्मक पूर्णांक हैं। लक्ष्य सभी 0s के साथ प्रारंभिक सरणी का उपयोग करके लक्ष्य सरणी गिरफ्तारी [] बनाना है। सभी 0 के साथ दिए गए खाली सरणी पर लागू किए जा सकने वाले संचालन में वृद्धि/कमी संचालन प्रत्यय होगा।

यदि हम कोई भी अनुक्रमणिका जैसे i चुनते हैं, तो प्रत्यय वृद्धि संचालन के मामले में हम अनुक्रमणिका i से अंतिम अनुक्रमणिका तक सभी तत्वों में 1 जोड़ देंगे।

प्रत्यय घटती कार्रवाई के मामले में हम सूचकांक i से अंतिम सूचकांक तक सभी तत्वों में से 1 घटा देंगे।

आइए उदाहरणों के साथ समझते हैं

इनपुट - गिरफ्तारी [] ={ 1,2,3 }

आउटपुट − किसी दिए गए एरे को बनाने के लिए प्रत्यय वृद्धि/कमी संचालन की संख्या है − 3

स्पष्टीकरण

Starting from { 0, 0, 0 }
Choose index 0, applying suffix increment { 1, 1, 1 }
Choose index 1, applying suffix increment { 1, 2, 2 }
Choose index 2, applying suffix increment { 1, 2, 3 }
Total operations =3

इनपुट - गिरफ्तारी [] ={ 1, 4, 5, 3 }

आउटपुट − किसी दिए गए सरणी के निर्माण के लिए प्रत्यय वेतन वृद्धि/गिरावट संचालन की संख्या है − 7

स्पष्टीकरण

Starting from { 0, 0, 0, 0 }
Choose index 0, applying suffix increment { 1, 1, 1, 1 }
Choose index 1, applying suffix increment { 1, 2, 2, 2 }
Choose index 1, applying suffix increment { 1, 3, 3, 3 }
Choose index 1, applying suffix increment { 1, 4, 4, 4 }
Choose index 2, applying suffix increment { 1, 4, 5, 5 }
Choose index 3, applying suffix decrement { 1, 4, 5, 4 }
Choose index 3, applying suffix decrement { 1, 4, 5, 3 }
Total operations = 7

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

यदि हम प्रारंभिक सरणी को B [] के रूप में लेते हैं। पहले तत्व बी [0] को एआर [0] के बराबर बनाने के लिए। हमें प्रत्यय वृद्धि संचालन की गिरफ्तारी [0] संख्या की आवश्यकता होगी। इसके बाद सभी B[0]=B[1]....=B[n-1]=arr[0] बराबर हो जाएंगे।

दूसरे तत्व B[1] को arr[1] के बराबर बनाने के लिए, हमें आवश्यकता होगी | गिरफ्तारी [1]-गिरफ्तारी [0] | संचालन की संख्या। (या तो वेतन वृद्धि या कमी)।

तो B[i] को arr के बराबर बनाने के लिए[i] हमें इसकी आवश्यकता होगी | एआर [i] - एआर [i-1] | संचालन की संख्या।

संचालन की कुल संख्या होगी | गिरफ्तार [0] | + | गिरफ्तारी [1]-गिरफ्तारी [0] | +…. + | arr[n-1]-arr[n-2] |.

  • लक्ष्य सरणी को गिरफ्तारी [] के रूप में लें।

  • फ़ंक्शन incr_decr_op(int arr[], int size) सरणी और उसकी लंबाई लेता है और किसी दिए गए सरणी के निर्माण के लिए प्रत्यय वृद्धि/कमी संचालन की गिनती देता है

  • प्रारंभिक गणना 0 के रूप में लें।

  • ट्रैवर्स ऐरे एआर [] लूप के लिए उपयोग कर रहा है

  • अनुक्रमणिका 0 के लिए गिनने के लिए गिरफ्तारी [i] जोड़ें।

  • अन्य इंडेक्स के लिए गिनती करने के लिए abs(arr[i]-arr[i-1] ) जोड़ें।

  • लूप के अंत में परिणाम के रूप में वापसी की गणना करें।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int incr_decr_op(int arr[], int size){
   int count = 0;
   for (int i = 0; i < size; i++){
      if (i > 0){
         count += abs(arr[i] - arr[i - 1]);
      }
      else{
         count = count + abs(arr[i]);
      }
   }
   return count;
}
int main(){
   int arr[] = { 3, 3, 1, 2, 2 };
   int size = sizeof(arr) / sizeof(arr[0]);
   cout<<"Count of suffix increment/decrement operations to construct a given array are: "<<incr_decr_op(arr, size) << endl;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count of suffix increment/decrement operations to construct a given array are: 6

  1. सी ++ में सरणी में दो दिए गए तत्वों के बीच तत्वों की संख्या गिनें

    हमें एक सरणी दी गई है जिसमें पूर्णांक तत्व और दो संख्याएँ प्रारंभ और अंत होती हैं और कार्य एक सरणी में प्रारंभ और अंत के बीच मौजूद तत्वों की गणना करना है। एक प्रकार की डेटा संरचना को व्यवस्थित करता है जो एक ही प्रकार के तत्वों के एक निश्चित आकार के अनुक्रमिक संग्रह को संग्रहीत कर सकता है। डेटा के स

  1. सी ++ में एक सरणी में अलग-अलग तत्वों की गणना करें

    हमें दोहराए जाने वाले तत्वों वाले किसी भी आकार की एक क्रमबद्ध सरणी दी जाती है और कार्य एक सरणी में अलग-अलग तत्वों की गिनती की गणना करना है। एक प्रकार की डेटा संरचना को व्यवस्थित करता है जो एक ही प्रकार के तत्वों के एक निश्चित आकार के अनुक्रमिक संग्रह को संग्रहीत कर सकता है। डेटा के संग्रह को संग्रह

  1. सी ++ में दिए गए सरणी में लगातार तत्वों के जीसीडी से एक सरणी बनाएं

    मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A[] है। हमें एक और सरणी B[] ढूंढनी है, जिसका आकार n+1 है, जैसे कि B[i] और B[i + 1] का GCD A[i] है। यदि कई समाधान हैं, तो उनमें से एक को प्रिंट करें जिसका सरणी योग न्यूनतम है। तो अगर ए =[1, 2, 3], तो आउटपुट [1, 2, 6, 3] . होगा =A[i + 1], A[i + 2] का LCM।