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

C++ में लैटिन वर्ग


लैटिन वर्ग एक मैट्रिक्स है जिसमें एक विशेष पैटर्न होता है। आइए पैटर्न की जांच के लिए विभिन्न उदाहरण देखते हैं।

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

आपको जो लैटिन वर्ग मिलेगा वह ऊपर के उदाहरणों में देखे अनुसार अलग-अलग आकार का होगा। लेकिन, यदि आप उपरोक्त मैट्रिक्स के पैटर्न को ध्यान से देखते हैं, तो आप पाएंगे कि पिछली पंक्ति की अंतिम संख्या अगली पंक्ति के पहले तत्व के रूप में आती है।

यही लैटिन वर्ग में छिपा पैटर्न है। हमें इनपुट n के लिए उपरोक्त मैट्रिक्स उत्पन्न करने वाला प्रोग्राम लिखना है।

एल्गोरिदम

  • n को अपनी पसंद की किसी भी संख्या से आरंभ करें।
  • n + 1 मान के साथ एक संख्या आरंभ करें जिसे first_half_end कहते हैं।
  • एक लूप लिखें जो 1 से n तक दोनों समावेशी पुनरावृति करता है।
    • first_half_end के मान को first_half_start नामक वेरिएबल में असाइन करें।
    • एक लूप लिखें जब तक first_half_start n के मान तक नहीं पहुंच जाता।
      • पुनरावृत्ति वेरिएबल यानी first_half_start प्रिंट करें।
    • एक लूप लिखें जो 1 से first_half_end तक पुनरावृति करता है।
      • पुनरावृत्ति वेरिएबल प्रिंट करें।
    • first_half_end के मान को 1 से घटाएं।
    • अगली पंक्ति पर जाएं।

कार्यान्वयन

निम्नलिखित C++ में उपरोक्त एल्गोरिदम का कार्यान्वयन है:

#include <bits/stdc++.h> 
using namespace std; 

void generateLatinSquare(int n) { 
    int first_half_end = n + 1; 
    for (int i = 1; i <= n; i++) { 
        int first_half_start = first_half_end; 
        while (first_half_start <= n) { 
            cout << first_half_start << " "; 
            first_half_start++; 
        } 
        for (int second_half_start = 1; second_half_start < first_half_end; second_half_start++){ 
            cout << second_half_start << " "; 
        } 
        first_half_end--; 
        cout << endl; 
    } 
    cout << endl; 
} 

int main(void) { 
    generateLatinSquare(2); 
    generateLatinSquare(3); 
    generateLatinSquare(4); 
    return 0; 
}

आउटपुट

यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्नलिखित परिणाम मिलेगा।

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

  1. C++ में वर्ग के परिवृत्त का क्षेत्रफल C++ में वर्ग के परिवृत्त का क्षेत्रफल

    इस समस्या में, हम वर्ग के परिवृत्त का क्षेत्रफल गणना करेंगे जब हमें वर्ग की भुजा दी गई हो। आगे बढ़ने से पहले आइए मूल परिभाषाओं को दोहराते हैं ताकि अवधारणाओं को बेहतर ढंग से समझा जा सके। वर्ग समान भुजाओं वाला एक चतुर्भुज है। परिवृत्त एक वृत्त है जो बहुभुज के सभी शीर्षों को छूता है। क्षेत्रफल किसी भी

  1. C++ में वर्ग का क्षेत्रफल प्रोग्राम C++ में वर्ग का क्षेत्रफल प्रोग्राम

    हमें एक आयत की भुजा दी गई है और हमारा कार्य उस भुजा से वर्ग का क्षेत्रफल प्रिंट करना है।वर्ग एक 2-D प्लेन आकृति है जिसके 4 भुजाएं होती हैं और 90 डिग्री के 4 कोण बनते हैं और सभी भुजाएं समान आकार की होती हैं। दूसरे शब्दों में हम कह सकते हैं कि वर्ग समान भुजाओं वाला एक आयत का रूप है।नीचे वर्ग का प्रतिन

  1. - पायथन में लैटिन स्क्वायर

    लैटिन स्क्वायर एक मैट्रिक्स है जिसमें एक विशेष पैटर्न होता। आइए पैटर्न की जांच के लिए अलग-अलग उदाहरण देखें। 1 2 2 1 1 2 3 3 1 2 2 3 1 1 2 3 4 4 1 2 3 3 4 1 2 2 3 4 1 आपको जो लैटिन स्क्वायर मिलेगा वह ऊपर दिए गए उदाहरणों में आप देख सकते हैं कि अलग-अलग आकार का होगा। लेकिन, यदि आप उपरोक्त मैट्रिक्स क