您的位置:首页 > 编程语言 > Java开发

java 有n个人围成一圈,从第1个人开始,1、2、3报数,报至3出局,余下的人继续从1、2、3报数,问:最后剩下的一人是原来的第几号?同时求出被淘汰编号的序列

2017-11-24 14:23 686 查看
面试题:有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));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐