miércoles, 18 de agosto de 2010

Recorrido del caracol

8 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. public class Caracol {

    private 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);
    }
    }

    ResponderEliminar
  3. import javax.swing.JOptionPane;

    public 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();

    }

    }

    ResponderEliminar
  4. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  5. 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();
    }

    ResponderEliminar
  6. public void llenarMatriz (int n){
    int 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++;
    }
    }

    ResponderEliminar
  7. for(int i=n-1;i>0;i--){
    if(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);
    }

    ResponderEliminar
  8. public void imprimir (int n){
    for(int i=0;i<n;i++){
    for(int j=0;j<n;j++){
    System.out.print(matriz[i][j]+" ");
    }
    System.out.print("\n");
    }
    }

    }

    ResponderEliminar