logo

Latin Meydanı

Latin Karesi, her biri her satır ve sütunda tam olarak bir kez görünen n farklı sayıyla doldurulmuş n x n'lik bir ızgaradır. Bir n girişi verildiğinde, her biri her satırda ve her sütunda tam olarak bir kez görünen 1'den n'ye kadar sayılardan oluşan bir n x n matrisi yazdırmamız gerekir.

Örnekler:  

Input: 3 Output: 1 2 3 3 1 2 2 3 1 Input: 5 Output: 1 2 3 4 5 5 1 2 3 4 4 5 1 2 3 3 4 5 1 2 2 3 4 5 1

Sayının Latin Karesinde saklandığı herhangi bir kalıp buldunuz mu? 



  • İlk satırda sayılar 1'den n'ye kadar seri olarak saklanır.
  • İkinci satırda sayılar bir sütun sağa kaydırılır. yani 1 şimdi 2. sütunda saklanır ve bu şekilde devam eder.
  • Üçüncü satırda sayılar iki sütun sağa kaydırılır. yani 1 şimdi 3. sütunda saklanır ve bu şekilde devam eder.
  • Kalan sıralar için de aynı şekilde devam ediyoruz.

Not : Bir n x n Latin karesinin birden fazla olası konfigürasyonu olabilir. 

Uygulama:

C++
// C++ program to print Latin Square #include    using namespace std; // Function to print n x n Latin Square void printLatin(int n) {  // A variable to control the rotation  // point.  int k = n+1;  // Loop to print rows  for (int i=1; i<=n; i++)  {  // This loops runs only after first  // iteration of outer loop. It prints  // numbers from n to k  int temp = k;  while (temp <= n)  {  cout << temp << ' ';  temp++;  }  // This loop prints numbers from 1 to k-1.  for (int j=1; j<k; j++)  cout << j << ' ';  k--;  cout << endl;  } } // Driver program to test above function int main(void) {  int n = 5;  // Invoking printLatin function  printLatin(n);  return 0; } // This code is contributed by kothavvsaakash. 
C
// C program to print Latin Square #include // Function to print n x n Latin Square void printLatin(int n) {  // A variable to control the rotation  // point.  int k = n+1;  // Loop to print rows  for (int i=1; i<=n; i++)  {  // This loops runs only after first  // iteration of outer loop. It prints  // numbers from n to k  int temp = k;  while (temp <= n)  {  printf('%d ' temp);  temp++;  }  // This loop prints numbers from 1 to k-1.  for (int j=1; j<k; j++)  printf('%d ' j);  k--;  printf('n');  } } // Driver program to test above function int main(void) {  int n = 5;  // Invoking printLatin function  printLatin(n);  return 0; } 
Java
// Java program to print Latin Square class GFG {    // Function to print n x n Latin Square  static void printLatin(int n)  {    // A variable to control the   // rotation point.  int k = n+1;    // Loop to print rows  for (int i = 1; i <= n; i++)  {  // This loops runs only after  // first iteration of outer   // loop. It prints  // numbers from n to k  int temp = k;  while (temp <= n)  {  System.out.print(temp + ' ');  temp++;  }    // This loop prints numbers from  // 1 to k-1.  for (int j = 1; j < k; j++)  System.out.print(j + ' ');    k--;  System.out.println();  }  }     // Driver code  public static void main (String[] args)  {  int n = 5;    // Invoking printLatin function  printLatin(n);  } } // This code is contributed by Anant Agarwal. 
Python 3
# Python 3 program to print Latin Square  # Function to print n x n Latin Square  def printLatin(n): # A variable to control the  # rotation point.  k = n + 1 # Loop to print rows  for i in range(1 n + 1 1): # This loops runs only after first  # iteration of outer loop. It prints  # numbers from n to k  temp = k while (temp <= n) : print(temp end = ' ') temp += 1 # This loop prints numbers # from 1 to k-1.  for j in range(1 k): print(j end = ' ') k -= 1 print() # Driver Code n = 5 # Invoking printLatin function  printLatin(n) # This code is contributed by R_Raj 
C#
// C# program to print Latin Square using System; class GFG {    // Function to print n x n  // Latin Square  static void printLatin(int n)  {    // A variable to control the   // rotation point.  int k = n + 1;    // Loop to print rows  for (int i = 1; i <= n; i++)  {  // This loops runs only after  // first iteration of outer   // loop. It prints numbers  // from n to k  int temp = k;  while (temp <= n)  {  Console.Write(temp + ' ');  temp++;  }    // This loop prints numbers from  // 1 to k-1.  for (int j = 1; j < k; j++)  Console.Write(j + ' ');    k--;  Console.WriteLine();  }  }     // Driver code  public static void Main ()  {  int n = 5;    // Invoking printLatin function  printLatin(n);  } } // This code is contributed by KRV. 
PHP
 // PHP program to print Latin Square // Function to print n x n Latin Square function printLatin( $n) { // A variable to control // the rotation point. $k = $n + 1; // Loop to print rows for ( $i = 1; $i <= $n; $i++) { // This loops runs only after // first iteration of outer loop. // It prints numbers from n to k $temp = $k; while ($temp <= $n) { echo $temp' '; $temp++; } // This loop prints numbers // from 1 to k-1. for ($j = 1; $j < $k; $j++) echo $j ' '; $k--; echo 'n'; } } // Driver Code $n = 5; // Invoking printLatin function printLatin($n); // This code is contributed by anuj_67. ?> 
JavaScript
<script>  // Javascript program to print Latin Square    // Function to print n x n  // Latin Square  function printLatin(n)  {    // A variable to control the   // rotation point.  let k = n + 1;    // Loop to print rows  for (let i = 1; i <= n; i++)  {    // This loops runs only after  // first iteration of outer   // loop. It prints numbers  // from n to k  let temp = k;    while (temp <= n)  {  document.write(temp + ' ');  temp++;  }    // This loop prints numbers from  // 1 to k-1.  for (let j = 1; j < k; j++)  document.write(j + ' ');    k--;  document.write('
'
); } } let n = 5; // Invoking printLatin function printLatin(n); </script>

Çıkış
1 2 3 4 5 5 1 2 3 4 4 5 1 2 3 3 4 5 1 2 2 3 4 5 1 

Zaman Karmaşıklığı: Ç(n*n)
Yardımcı Alan: Ç(1)