Java - Error en la resolucion del problema de Josephus en java

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

Error en la resolucion del problema de Josephus en java

Publicado por Rafael (2 intervenciones) el 07/12/2018 22:00:23
Hola ¿alguien me puede ayudar a encontrar el error?, es el problema de Josephs escrito en java, lo ejecuto y no me resuelve.

*------------------------------------------------
package UNIVERSIDAD;

public class Josephus {

public static void main(String [] args){

Main main = new Main();

int[] circulo = main.Joseph(20, 45);

for (int i=0; i < circulo.length; i++) {
System.out.print(i+1+"\t");
System.out.println(circulo[i]);
}
}


public int[] Joseph(int personas, int k){

//inicializar el circulo con todas las personas
//vivas representadas con un 1 en su posición

int[] circulo = new int [personas];

for (int i=0; i < personas; i++) {
circulo[i]=1;
}

//comienza el juego.

int indice = 0;

while (personas > 1) {

//se recorre el arreglo hasta la posicion k

for (int i=0; i<k; i++) {

//como es circular, si llego al final del arreglo,
//vuelvo al principio.

if (indice > circulo.length - 1) {
indice=0;
}

//salteo los soldados muertos.

while (circulo[indice]==0) {
indice++;
if(indice > circulo.length - 1) {
indice = 0;
}
}

indice ++;

}

circulo[indice - 1] = 0;
personas = personas - 1;

}

return circulo;
}
}
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 Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Error en la resolucion del problema de Josephus en java

Publicado por Billy Joel (876 intervenciones) el 07/12/2018 23:16:34
El error era la segunda línea después del public static void main.... pusiste Main main = new Main();
Lo cambie por Josephus main = new Josephus(); y ya todo funciona (supongo)
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
37
38
39
40
41
42
43
44
public class Josephus {
 
    public static void main(String[] args) {
        Josephus main = new Josephus();
        int[] circulo = main.Joseph(20, 45);
        for (int i = 0; i < circulo.length; i++) {
            System.out.print(i + 1 + "\t");
            System.out.println(circulo[i]);
        }
    }
 
    public int[] Joseph(int personas, int k) {
        //inicializar el circulo con todas las personas
        //vivas representadas con un 1 en su posición
        int[] circulo = new int[personas];
        for (int i = 0; i < personas; i++) {
            circulo[i] = 1;
        }
 
        //comienza el juego.
        int indice = 0;
        while (personas > 1) {
            //se recorre el arreglo hasta la posicion k
            for (int i = 0; i < k; i++) {
                //como es circular, si llego al final del arreglo,
                //vuelvo al principio.
                if (indice > circulo.length - 1) {
                    indice = 0;
                }
                //salteo los soldados muertos.
                while (circulo[indice] == 0) {
                    indice++;
                    if (indice > circulo.length - 1) {
                        indice = 0;
                    }
                }
                indice++;
            }
            circulo[indice - 1] = 0;
            personas = personas - 1;
        }
        return circulo;
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 4
Ha aumentado su posición en 8 puestos en Java (en relación al último mes)
Gráfica de Java

Error en la resolucion del problema de Josephus en java

Publicado por Rafael (2 intervenciones) el 07/12/2018 23:57:05
Excelente, Gracias amigo, ahora funciona perfecto.
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

Error en la resolucion del problema de Josephus en java

Publicado por Matthew (1 intervención) el 14/05/2020 00:02:23
hola , me gustaria saber como puedo resolver ese mismo ejercicio pero con listas circulares simples, es para un trabajo de l universidad pues me enrede bastante el intentar hacerlo. te agradezco la yuda pronta
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