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 मान n तक न पहुंच जाए।
      • पुनरावृत्त चर यानी first_half_start को प्रिंट करें।
    • एक लूप लिखें जो 1 से 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++ में एक वर्ग के एक परिचालित वृत्त का क्षेत्रफल

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

  1. सी++ में वर्ग के क्षेत्रफल के लिए कार्यक्रम

    हमें एक आयत की एक भुजा दी गई है और हमारा काम उस तरफ से वर्ग के क्षेत्रफल को प्रिंट करना है। वर्ग 2-डी सादा आकृति है जिसमें 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 जैसा कि आप ऊपर के उदाहरणों में देखेंगे, लैटिन वर्ग अलग-अलग आकार का होगा। लेकिन, यदि आप उपरोक्त मैट्रिक्स के पैटर्न को ध्यान स