Skip to content

Instantly share code, notes, and snippets.

@alvareztech
Last active April 8, 2022 21:08
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save alvareztech/babcfb962eaf8a394a20 to your computer and use it in GitHub Desktop.
Save alvareztech/babcfb962eaf8a394a20 to your computer and use it in GitHub Desktop.
Clase para ejecutar el algoritmo para generar una matriz caracol cuadrada.
import java.util.Scanner;
/**
* Clase para ejecutar el algoritmo para generar una matriz caracol cuadrada
* @author Daniel Alvarez
*/
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Dimesión De La Matriz: ");
int n = in.nextInt();
mostrarMatriz(generarMatrizCaracol(n, 1), n, n);
}
/**
* Genera Una Matriz Caracol.
* @param n dimensión de la matriz cuadrada
* @param x numero con cual se iniciará la matriz caracol
* @return matriz de enteros con la matriz caracol ya generada.
*/
public static int[][] generarMatrizCaracol(int n, int x) {
int[][] M = new int[n + 1][n + 1];
for (int a = 1; a <= n / 2; a++) {
for (int i = a; i <= n - a; i++) {
M[a][i] = x;
x++;
}
for (int i = a; i <= n - a; i++) {
M[i][n - a + 1] = x;
x++;
}
for (int i = n - a + 1; i >= a + 1; i--) {
M[n - a + 1][i] = x;
x++;
}
for (int i = n - a + 1; i >= a + 1; i--) {
M[i][a] = x;
x++;
}
}
if (n % 2 == 1) {
M[n / 2 + 1][n / 2 + 1] = x;
}
return M;
}
/**
* Muestra Una Matriz Cualquiera Por Consola A Partir De La Fila 1 y Columna 1
* @param M matriz a mostrar
* @param f numero de filas de la matriz
* @param c numero de columnas de la matriz
*/
public static void mostrarMatriz(int[][] M, int f, int c) {
for (int i = 1; i <= f; i++) {
for (int j = 1; j <= c; j++) {
System.out.print("\t" + M[i][j]);
}
System.out.println();
}
}
}
@sandrapacco
Copy link

hola, y si ese código lo quisiera ejecutar en Borland C++ ??

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment