Java - Como hacer una matriz caracol (no cuadrada)

 
Vista:
sin imagen de perfil
Val: 14
Ha aumentado su posición en 8 puestos en Java (en relación al último mes)
Gráfica de Java

Como hacer una matriz caracol (no cuadrada)

Publicado por Francisco (10 intervenciones) el 19/02/2020 02:30:11
Tengo el siguiente programa: pido a un usuario que ingrese una fecha y hora con el formato dd/mm/yyyy y la hora HH:MM:SS los números que forman a la fecha y a la hora los guardo en un arreglo y después transformo cada numero en un binario de 4 dígitos usando un .toBinaryString dándome como resultado un cadena de 56 dígitos lo que a continuación quiero hacer es meter esa cadena de 56 dígitos en una matriz caracol de 7 columnas por 8 renglones (7*8) la verdad no tengo conocimientos de como hacer una matriz caracol que no sea cuadrada y tampoco conozco como meter una cadena a la matriz este es el código que llevo al momento:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public class Fecha {
 
    public static void main(String[] args) {
        String f_h;
        String fecha_hora;
        fecha_hora = JOptionPane.showInputDialog(null, "Ingrese la fecha dd/mm/aa y la hora");
        f_h = fecha_hora.replaceAll("/|\\s|:", "");
        int[] digitos = new int[14];
        String cad;
        int ent;
        String binario;
        char[] caracteres = f_h.toCharArray();
        for (int i = 0; i < caracteres.length; i++) {
            cad = Character.toString(caracteres[i]);
            ent = Integer.parseInt(cad);
            digitos[i] = ent;
        }
        for (int i = 0; i < digitos.length; i++) {
            System.out.print(digitos[i]);
        }
        System.out.println("");
        for (int i = 0; i < digitos.length; i++) {
             binario = Integer.toBinaryString(digitos[i]);
            if (digitos[i] <= 1) {
                System.out.print("000" + binario);
            } else if ((digitos[i] > 1)&&(digitos[i]<4)) {
                System.out.print("00" + binario);
            }else if((digitos[i] >=4)&&((digitos[i] <8))){
                System.out.print("0" + binario);
            }else if(digitos[i]>=8){
                System.out.print(binario);
            }
        }
 
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Como hacer una matriz caracol (no cuadrada)

Publicado por Rodrigo (623 intervenciones) el 19/02/2020 15:06:06
Que es una matriz caracol?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de pablo
Val: 626
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Como hacer una matriz caracol (no cuadrada)

Publicado por pablo (239 intervenciones) el 19/02/2020 16:52:25
Hola Rodrigo es una matriz que se debería de mostrar de la siguiente manera
1
2
3
1  2   3   4  5   6  7
16 17 18  19 20 21 8
15 14 13 12 11  10 9

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Como hacer una matriz caracol (no cuadrada)

Publicado por Rodrigo (623 intervenciones) el 19/02/2020 23:41:20
Se tienen 2 largos, (numero de filas, numero de columnas).
Una idea posible: rellenar la matriz en orden, hacia la derecha, hacia abajo, hacia la izquierda, hacia arriba.
Siempre que se cambia de direccion, se disminuye 1 el largo que se avanza, respecto a la vez anterior.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 98
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Como hacer una matriz caracol (no cuadrada)

Publicado por Francisco Emmanuel (60 intervenciones) el 20/02/2020 00:02:32
Me parece correcta tu idea lo que no aun no se como hacer es como insertar la cadena de números binarios he podido hacer la matriz caracol con números sucesivos 1,2,3... hasta llegar al 56 pero no con la cadena de números binarios
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Como hacer una matriz caracol (no cuadrada)

Publicado por Rodrigo (623 intervenciones) el 20/02/2020 00:58:10
Crea solo un gran string con los 56 bits, no crees varios strings separados (o bien crealos separados, pero pegalos a un gran string final)
Usa el metodo substring para obtener el i-esimo bit
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Como hacer una matriz caracol (no cuadrada)

Publicado por Rodrigo (623 intervenciones) el 21/02/2020 07:20:13
En este otro post tambien quieren convertir los digitos en binarios de 4 cifras, podria convenirte mirar ahi por una solucion alternativa a lo que tienes para esa parte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar