20 personas afortunados

Afortunadamente personas

Análisis de requerimientos

Hay 100 presos individuales, el número de cada persona es 1,2, ... 100 rey dispuesto a perdonar a una persona, perdón la regla: la gente primero deshacerse de la ubicación rara. El resto de la nueva cola de reserva, siguen matando a la gente en una posición extraña. Hasta que por fin descansar una persona, esta persona es los afortunados, por favor, resumió su número.

etapa de análisis

a, 100 definen una matriz de número de memoria individual.
B, definir un bucle sin fin, la eliminación de personas posición impar.
c, las posiciones numeradas impares no humanos procedentes de las nuevas tiendas a la nueva matriz para ir.
d, nueva matriz repetir el proceso hasta el resto de una persona que es suerte hasta ahora.

public class LuckyNumDemo {
    public static void main(String[] args) {
        // 1、定义一个数组存储100个人的编号。
        int[] peoples = new int[100];
        // 2、存入100个人的编号进去。
        for(int i = 0 ; i < peoples.length ; i++ ) {
            peoples[i] = i+1;
        }
        System.out.println("数组内容:"+ Arrays.toString(peoples)); // --Java提供的而技术,了解会用就好!
        // 3、定义一个死循环,去掉奇数位置的人。
        while(true){
            // 4、定义一个新数组存储本轮幸存者,本轮幸存者人数一定是数组长度/2
            int[] lastPeoples = new int[peoples.length / 2];
            // 5、遍历出原数组的偶数位置的人存入到新数组即可。
            int index = 0 ; // 记录索引
            for(int i = 1 ; i < peoples.length ; i+=2 ) {
                // peoples[i]
                lastPeoples[index++]  = peoples[i];
            }
            // 6、本轮幸存者
            System.out.println("本轮幸存者:"+Arrays.toString(lastPeoples));
            // 7、判断幸存者是否只有一位了,就结束循环
            if(lastPeoples.length == 1) break;
            // 8、把新的数组地址替换老数组地址从新进行一样的筛选
            peoples = lastPeoples;
        }

    }
}
Publicado 34 artículos originales · alabanza ganado 16 · vistas 284

Supongo que te gusta

Origin blog.csdn.net/qq_41005604/article/details/105201364
Recomendado
Clasificación