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

किसी दिए गए मैट्रिक्स को C++ में रिवर्स स्पाइरल रूप में प्रिंट करें

इस समस्या में, हमें एक 2-आयामी मैट्रिक्स दिया गया है। हमारा काम मैट्रिक्स के सभी तत्वों को रिवर्स स्पाइरल रूप में प्रिंट करना है।

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

Input:
   12 23 54 67
   76 90 01 51
   43 18 49 5
   31 91 75 9
Output: 18 49 1 90 76 43 31 91 75 9 5 51 67 54 23 12

हम मैट्रिक्स के केंद्र से शुरू करेंगे और तत्वों को रिवर्स सर्पिल दिशा में प्रिंट करेंगे और तत्वों को विपरीत दिशा में प्रिंट करने के लिए चार लूप लेंगे।

उदाहरण

हमारे समाधान के कार्यान्वयन को दिखाने के लिए कार्यक्रम

#include <iostream>
#define R 3
#define C 6
using namespace std;
void printReverseSpiral(int m, int n, int a[R][C]) {
   long int b[100];
   int i, k = 0, l = 0;
   int z = 0;
   int size = m*n;
   while (k < m && l < n) {
      int val;
      for (i = l; i < n; ++i){
         val = a[k][i];
         b[z] = val;
         ++z;
      }
      k++;
      for (i = k; i < m; ++i){
         val = a[i][n-1];
         b[z] = val;
         ++z;
      }
      n--;
      if ( k < m){
         for (i = n-1; i >= l; --i){
            val = a[m-1][i];
            b[z] = val;
            ++z;
         }
         m--;
      }
      if (l < n){
         for (i = m-1; i >= k; --i){
            val = a[i][l];
            b[z] = val;
            ++z;
         }
         l++;
      }
   }
   for (int i=size-1 ; i>=0 ; --i){
      cout<<b[i]<<" ";
   }
}
int main() {
   int mat[R][C] = {
      {34, 5, 6, 98, 12, 23},
      {9, 12, 56, 87, 99, 1},
      {13, 91, 50, 8, 21, 2}
   };
   cout<<"Printing reverse Spiral of the matrix :\n";
   printReverseSpiral(R, C, mat);
   return 0;
}

आउटपुट

मैट्रिक्स का रिवर्स स्पाइरल प्रिंट करना -

99 87 56 12 9 13 91 50 8 21 2 1 23 12 98 6 5 34

  1. सी++ में सर्पिल मैट्रिक्स III

    मान लीजिए कि हमारे पास आर पंक्तियों और सी कॉलम के साथ एक 2 आयामी ग्रिड है, हम पूर्व की ओर (r0, c0) से शुरू करते हैं। यहां, ग्रिड का उत्तर-पश्चिम कोना पहली पंक्ति और स्तंभ पर है, और ग्रिड का दक्षिण-पूर्व कोना अंतिम पंक्ति और स्तंभ पर है। हम इस ग्रिड में हर स्थिति का दौरा करने के लिए एक दक्षिणावर्त सर

  1. दिए गए मैट्रिक्स को C++ में वामावर्त सर्पिल रूप में प्रिंट करें

    इस समस्या में, हमें एक 2-आयामी मैट्रिक्स दिया गया है। और हमारा काम मैट्रिक्स के तत्वों को वामावर्त सर्पिल में से प्रिंट करना है। वामावर्त सर्पिल रूप - यह एक सर्पिल ट्रैवर्सल है जो ऊपर-बाएं से शुरू होता है और वामावर्त दिशा में पहले नीचे-दाएं-ऊपर-बाएं जाता है। वामावर्त ट्रैवर्सल 1 5 9 13 14 15 16

  1. किसी दिए गए स्रोत से गंतव्य तक सभी पथों को C++ में प्रिंट करें

    इस समस्या में हमें एक निर्देशित ग्राफ़ दिया जाता है और हमें स्रोत से ग्राफ़ के गंतव्य तक के सभी पथों को प्रिंट करना होता है। निर्देशित ग्राफ़ किनारों वाला एक ग्राफ़ है जो शीर्ष a से b तक निर्देशित होता है। समस्या को समझने के लिए एक उदाहरण लेते हैं स्रोत =के गंतव्य =पी आउटपुट: K -> T -&