Un cuadrado latino es una cuadrícula llena de n números distintos, cada uno de los cuales aparece exactamente una vez en cada fila y columna. Dada una entrada n, tenemos que imprimir una array xn que consta de números del 1 al n, cada uno de los cuales aparece exactamente una vez en cada fila y cada columna.
Ejemplos:
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
¿Encontraste algún patrón en el que el número se almacena en un cuadrado latino?
- En la primera fila, los números se almacenan del 1 al n en serie.
- En la segunda fila, los números se desplazan hacia la derecha una columna. es decir, 1 se almacena en la segunda columna ahora y así sucesivamente.
- En la tercera fila, los números se desplazan a la derecha en dos columnas. es decir, 1 se almacena en la tercera columna ahora y así sucesivamente.
- Continuamos de la misma manera para las filas restantes.
Nota : Puede haber más de una configuración posible de un cuadrado latino.
Implementación:
C++
// C++ program to print Latin Square #include <iostream> 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<stdio.h> // 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 // 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("</br>"); } } let n = 5; // Invoking printLatin function printLatin(n); </script>
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
Este artículo es una contribución de Pratik Agarwal . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA