इस समस्या में, हमें एक 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