面试题:有n个人围成一圈,从第1个人开始,1、2、3报数,报至3出局,余下的人继续从1、2、3报数,问:最后剩下的一人是原来的第几号?同时求出被淘汰编号的序列
public static void main(String[] args) { int x = 10; int[] yy = new int[x]; int[] ww = new int[0]; for(int i = 0; i < x; i++){ yy[i] = i; } System.out.println("队列中的数据情况:" + Arrays.toString(yy)); // int i = 0; // while (yy.length > 1) { for (int j = 0; j < 3; j++) { // if (j == 2) { ww = Arrays.copyOf(ww, ww.length + 1); ww[ww.length - 1] = yy[i]; // for (int index = i; index < yy.length - 1; index++){ yy[index] = yy[index + 1]; } yy = Arrays.copyOf(yy, yy.length - 1); // i--; } // i++; // if (i >= yy.length) { i = 0; } // if (yy.length == 1) { break; } } } // System.out.println("淘汰的是:" + Arrays.toString(ww)); System.out.println("剩下的是:" + Arrays.toString(yy)); }