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

एक सरणी को पुनर्व्यवस्थित करें जैसे कि arr[i] =i C++ . में

हमें एक धनात्मक पूर्णांक प्रकार सरणी दी गई है, मान लीजिए, किसी भी आकार का arr[] ऐसा है कि किसी सरणी में तत्वों का मान 0 से अधिक होना चाहिए लेकिन किसी सरणी के आकार से कम होना चाहिए। कार्य एक सरणी को इस तरह से पुनर्व्यवस्थित करना है कि यदि एआर [i] 'i' है, यदि 'i' किसी सरणी में मौजूद है तो यह एआर [i] तत्व को मान -1 के साथ सेट करेगा और अंतिम प्रिंट करेगा परिणाम।

आइए इसके लिए विभिन्न इनपुट आउटपुट परिदृश्य देखें -

इनपुट - int arr[] ={0, 8, 1, 5, 4, 3, 2, 9 }

आउटपुट - एक सरणी की पुनर्व्यवस्था जैसे कि arr[i] =i है:0 1 2 3 4 5 -1

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

arr[0] = 0(present in an array)
arr[1] = 1(present in an array)
arr[2] = 2(present in an array)
arr[3] = 3(present in an array)
arr[4] = 4(present in an array)
arr[5] = 5(present in an array)
arr[6] = -1(NOT present in an array)
arr[7] = -1(NOT present in an array)

इनपुट - int arr[] ={1, 2, 6, 9, 10}

आउटपुट - एक सरणी की पुनर्व्यवस्था जैसे कि arr[i] =i है:-1 1 2 -1 -1

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

arr[0] = -1(NOT present in an array)
arr[1] = 1(present in an array)
arr[2] = 2(present in an array)
arr[3] = -1(NOT present in an array)
arr[4] = -1(NOT present in an array)

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

  • पूर्णांक प्रकार के तत्वों की एक सरणी इनपुट करें और एक सरणी के आकार की गणना करें।

  • व्यवस्था से पहले सरणी को प्रिंट करें और फ़ंक्शन को कॉल करें Rearranging(arr, size)

  • समारोह के अंदर पुनर्व्यवस्थित करना(गिरफ्तारी, आकार)

    • एक पूर्णांक प्रकार चर घोषित करें, मान लें, ptr

    • I से 0 तक के लिए लूप प्रारंभ करें जब तक कि i आकार से कम न हो। लूप के अंदर, j से 0 तक j से j तक आकार से कम के लिए एक और लूप प्रारंभ करें।

    • लूप के अंदर, IF arr[j] =i को चेक करें, फिर ptr =arr[j], arr[j] को arr[i],arr[i] से ptr और ब्रेक पर सेट करें।

    • प्रारंभ लूप फॉर आई से लेकर आई तक आकार से छोटा है। लूप के अंदर, IF arr[i]!=i चेक करें और फिर arr[i] से -1 पर सेट करें।

  • किसी सरणी के मानों की पुनर्व्यवस्था के बाद सरणी को प्रिंट करें।

उदाहरण

#include <iostream>
using namespace std;
void Rearranging(int arr[], int size){
   int ptr;
   for(int i = 0; i < size; i++){
      for(int j = 0; j < size; j++){
         if(arr[j] == i){
            ptr = arr[j];
            arr[j] = arr[i];
            arr[i] = ptr;
            break;
         }
      }
   }
   for(int i = 0; i < size; i++){
      if(arr[i] != i){
         arr[i] = -1;
      }
   }
}
int main(){
   int arr[] = {0, 8, 1, 5, 4, 3, 2, 9 };
   int size = sizeof(arr) / sizeof(arr[0]);
   //calling the function to rearrange an array such that arr[i] = i
   Rearranging(arr, size);
   //Printing the array
   cout<<"Rearrangement of an array such that arr[i] = i is: ";
   for(int i = 0; i < size; i++){
      cout << arr[i] << " ";
   }
}

आउटपुट

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

Rearrangement of an array such that arr[i] = i is: 0 1 2 3 4 5 -1 -1

  1. एक सरणी में अभाज्य संख्या K ज्ञात करें जैसे कि (A[i]% K) C++ में अधिकतम हो

    मान लीजिए कि हमारे पास n पूर्णांकों के साथ एक सरणी A है। हमें एक तत्व K को खोजना है जैसे कि K अभाज्य है, और A[i] mod K, K के सभी संभावित मानों में से सभी मान्य i के लिए अधिकतम है। यदि ऐसी कोई संख्या नहीं मिलती है, तो -1 लौटाएं। उदाहरण के लिए, यदि ए =[2, 10, 15, 7, 6, 8, 13], तो आउटपुट 13 होगा। तीन अ

  1. न्यूनतम x ऐसे खोजें कि (x% k) * (x / k) ==n C++ . में

    दो धनात्मक पूर्णांक n और k दिए गए हैं, और हमें धनात्मक पूर्णांक x ज्ञात करना है, जैसे कि (x% k)*(x / k) n के समान हो। तो अगर n और k क्रमशः 4 और 6 हैं, तो आउटपुट 10 होगा। तो (10% 6) * (10 / 6) =4. जैसा कि हम जानते हैं कि x% k का मान रेंज [1 से k - 1] (0 शामिल नहीं है) में होगा। * के) / (एक्स% के) +

  1. एक सरणी में सभी जोड़े (ए, बी) खोजें जैसे कि सी ++ में% बी =के

    मान लीजिए कि हमारे पास एक सरणी ए है, उस सरणी से, हमें सभी जोड़े (ए, बी) प्राप्त करना है जैसे कि ए% बी =के। मान लीजिए कि सरणी A =[2, 3, 4, 5, 7] और k =3 है, तो जोड़े (7, 4), (3, 4), (3, 5), (3, 7) हैं। इसे हल करने के लिए, हम सूची को देखेंगे और जांचेंगे कि दी गई शर्त संतोषजनक है या नहीं। उदाहरण #inc