Un problema algoritmo de java

12 personas forman un círculo, seguida del número de serie de 1-12, las agujas del reloj desde el principio Nº 1 de acuerdo con el número de veces que el número de personas 7 a la salida, entonces el siguiente número de secuencia desde el principio, para encontrar la última persona en salir al número original.

public static void joseph(int[] array,int n) {
        for (int i = 0; i < array.length; i++) {
            array[i] = i+1;
        }
        // 计数器
        int counter = 0;
        // 剩余人数
        int leftCount = array.length;
        // 索引
        int index = 0;
        while (leftCount > 1) {
            if (array[index]>0) {
                counter++;
                if (counter == n) {
                    counter = 0;
                    array[index] = 0;
                    leftCount--;
                }
            }
            index++;
            if (index == array.length) {
                index = 0;
            }
        }   
        for (int i = 0; i < array.length; i++) {
            if (array[i]>0) {
                System.out.println("剩余人员的位置是" + (i + 1));
            }
        }
    }

    public static void main(String[] args) {
        int [] array = new int[12];
        joseph(array,7);
    }

 

Publicado 55 artículos originales · ganado elogios 31 · Vistas a 80000 +

Supongo que te gusta

Origin blog.csdn.net/zengfanwei1990/article/details/81661299
Recomendado
Clasificación