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

C++ में 2D मैट्रिक्स में संकेंद्रित आयताकार पैटर्न प्रिंट करें


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

आइए एक उदाहरण लेकर इस समस्या को बेहतर ढंग से समझते हैं,

For n=4 is :     4 4 4 4 4 4 4     4 3 3 3 3 3 4     4 3 2 2 2 3 4     4 3 2 1 2 3 4     4 3 2 2 2 3 4     4 3 3 3 3 3 4     4 4 4 4 4 4 4

यहां, हमें n, पूर्णांक मान लेकर उपरोक्त अनुसार संकेंद्रित आयतों को प्रिंट करना है जैसे -

n n n n n n n-1 n-1 n-1 n n n-1 n-2 n-1 n n n-1 n-1 n-1 n n n n n n n

अब, इस समस्या में, जैसा कि हम देख सकते हैं 2D मैट्रिक्स में कुल (2n-1) स्तंभ और पंक्तियां हैं। यह 2D मैट्रिक्स दो भागों में प्रिंट किया जाता है। ऊपरी भाग 0 से (2n-1)/2 तक होगा और निचला आधा भाग ((2n-1)/2+1) से 2n-2 तक होगा।

अब, प्रत्येक पंक्ति मान को 1 से तब तक घटाती जाएगी जब तक संख्या पंक्तियों की संख्या तक न पहुंच जाए यानी 1 से i (पंक्तियों की संख्या)। फिर यह संख्या को वापस n तक बढ़ाता है।

उदाहरण

इस तर्क का उपयोग करके आइए समस्या को हल करने के लिए एक प्रोग्राम बनाते हैं,

#include <bits/stdc++.h> using namespace std; void print2Dsequence(int n){     int s = 2 * n - 1;     for (int i = 0; i < (s / 2) + 1; i++) {         int m = n;         for (int j = 0; j < i; j++) {             cout << m << " ";             m--;         }         for (int k = 0; k < s - 2 * i; k++) {             cout << n - i << " ";         }         m = n - i + 1;         for (int l = 0; l < i; l++) {             cout << m << " ";             m++;         }         cout << endl;     }     for (int i = s / 2 - 1; i >= 0; i--) {         int m = n;         for (int j = 0; j < i; j++) {             cout << m << " ";             m--;         }         for (int k = 0; k < s - 2 * i; k++) {             cout << n - i << " ";         }         m = n - i + 1;         for (int l = 0; l < i; l++) {             cout << m << " ";             m++;         }         cout << endl;     } } int main(){     int n = 4;     cout<<"The sequence of concurrent rectangle of 4 is : \n";     print2Dsequence(n);     return 0; }

आउटपुट

The sequence of the concurrent rectangle of 4 is -

4 4 4 4 4 4 4 4 3 3 3 3 3 4 4 3 2 2 2 3 4 4 3 2 1 2 3 4 4 3 2 2 2 3 4 4 3 3 3 3 3 4 4 4 4 4 4 4 4

  1. C प्रोग्रामिंग में मैट्रिक्स को स्नेक पैटर्न में प्रिंट करना C प्रोग्रामिंग में मैट्रिक्स को स्नेक पैटर्न में प्रिंट करना

    nxn आकार का एक ऐरे दिया गया है, प्रोग्राम को ऐरे के एलिमेंट्स को स्नेक पैटर्न में प्रिंट करना है बिना उनकी मूल स्थानों में कोई बदलाव किए। उदाहरण इनपुट: arr[]= 100 99 98 97 93 94 95 96 92 91 90 89 85 86 87 88 आउटपुट: 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 प्रोग्राम मैट्रिक्स की प्

  1. C प्रोग्राम में मैट्रिक्स में विकर्ण पैटर्न में संख्याएं प्रिंट करना C प्रोग्राम में मैट्रिक्स में विकर्ण पैटर्न में संख्याएं प्रिंट करना

    कार्य n x n मैट्रिक्स को विकर्ण पैटर्न में प्रिंट करना है। यदि n 3 है तो विकर्ण पैटर्न में मैट्रिक्स प्रिंट करना है: इसलिए आउटपुट इस तरह होगा: उदाहरण इनपुट: 3 आउटपुट: 1 2 4 3 5 7 6 8 9 इनपुट: 4 आउटपुट: 1 2 4 7 3 5 8 11 6 9 12 14 10 13 15 16 समस्या सुझाव देती है कि हमें एक स

  1. C++ में दिए गए मैट्रिक्स को काउंटर-क्लॉकवाइज स्पाइरल फॉर्म में प्रिंट करना C++ में दिए गए मैट्रिक्स को काउंटर-क्लॉकवाइज स्पाइरल फॉर्म में प्रिंट करना

    इस समस्या में, हमें एक 2-डायमेंशनल मैट्रिक्स दिया गया है। और हमारा कार्य मैट्रिक्स के एलिमेंट्स को काउंटर-क्लॉकवाइज स्पाइरल फॉर्म में प्रिंट करना है। काउंटरक्लॉकवाइज स्पाइरल फॉर्म यह एक स्पाइरल ट्रैवर्सल है जो टॉप-लेफ्ट से शुरू होता है और फिर काउंटर-क्लॉकवाइज दिशा में पहले बॉटम-राइट-अप-लेफ्ट की ओर