import javax.swing.JOptionPane; public class Caracol { int [][] matriz; public Caracol() { int n = Integer.parseInt(JOptionPane.showInputDialog("Ingrese el numero de la matriz")); this.llenarMatriz(n); this.imprimir(n); } public static void main(String[] args) { new Caracol(); }
Este comentario ha sido eliminado por el autor.
ResponderEliminarpublic class Caracol {
ResponderEliminarprivate int matriz[][], tamaño;
public Caracol(int tamaño){
matriz = new int[tamaño][tamaño];
this.tamaño = tamaño;
}
public void solucion(){
int i = 1,min = 0,max = tamaño-1,maxc = tamaño-1,maxf = tamaño-1,minC = 0,minF = 0;
while(i <= tamaño*tamaño){
for (int j = min; j <= maxc; j++) {
matriz[min][j] = i;
i++;
}
min++;
for (int j = min; j <= maxf; j++) {
matriz[j][maxc] = i;
i++;
}
minF++;
maxc--;
for (int j = maxc; j >= minC; j--) {
matriz[max][j] = i;
i++;
}
maxf--;
for (int j = maxf; j >= minF; j--) {
matriz [j][minC] = i;
i++;
}
minC++;
max--;
}
}
public void imprimir(){
String lista = "";
for (int f = 0; f < matriz.length; f++) {
lista += "\n";
for (int c = 0; c < matriz.length; c++) {
if (matriz[f][c] < 10) {
lista += "000"+matriz[f][c]+" ";
}else if (matriz[f][c] < 100){
lista += "00"+matriz[f][c]+" ";
}else if (matriz[f][c] < 1000){
lista += "0"+matriz[f][c]+" ";
}else{
lista += matriz[f][c]+" ";
}
}
}
System.out.print(lista);
}
}
import javax.swing.JOptionPane;
ResponderEliminarpublic class Main {
public static void main(String[] args) {
int tamaño = Integer.parseInt(JOptionPane.showInputDialog("Ingrese el tamaño de la matriz"));
Caracol a = new Caracol(tamaño);
a.solucion();
a.imprimir();
}
}
Este comentario ha sido eliminado por el autor.
ResponderEliminarimport javax.swing.JOptionPane;
ResponderEliminarpublic class Caracol {
int [][] matriz;
public Caracol() {
int n = Integer.parseInt(JOptionPane.showInputDialog("Ingrese el numero de la matriz"));
this.llenarMatriz(n);
this.imprimir(n);
}
public static void main(String[] args) {
new Caracol();
}
public void llenarMatriz (int n){
ResponderEliminarint contador = 1,x=0,y=n-1;
matriz = new int [n][n];
do{
for(int i=0;i<n;i++){
if(matriz[x][i] == 0){
matriz [x][i] = contador;
contador++;
}
}
for(int i=0;i<n;i++){
if(matriz[i][y] == 0){
matriz [i][y] = contador;
contador++;
}
}
for(int i=n-1;i>0;i--){
ResponderEliminarif(matriz[y][i] == 0){
matriz [y][i] = contador;
contador++;
}
}
for(int i=n-1;i>0;i--){
if(matriz[i][x] == 0){
matriz [i][x] = contador;
contador++;
}
}
y--;
x++;
}
while(x<=n/2);
}
public void imprimir (int n){
ResponderEliminarfor(int i=0;i<n;i++){
for(int j=0;j<n;j++){
System.out.print(matriz[i][j]+" ");
}
System.out.print("\n");
}
}
}