n 个人围成一圈(编号1-n),数到3的出列,最后剩下的人的编号
2012-11-18 16:46
337 查看
问题:
n 个人围成一圈(编号1-n),数到3的出列,然后又从头开始数,一直循环到最后一个人,请问最后剩下的人的编号?
n 个人围成一圈(编号1-n),数到3的出列,然后又从头开始数,一直循环到最后一个人,请问最后剩下的人的编号?
public int numberToExit(int total, int interval) { boolean[] arr = new boolean[total]; for(int i = 0; i < arr.length; i++) { arr[i] = true; } int left = arr.length; int count = 0; int index = 0; while (left > 1) { if(arr[index] == true) { count++; if(count == interval) { count = 0; arr[index] = false; left--; } } // we need to change the index if out of the range. index++; if(index == arr.length) { index = 0; } } for(int i = 0;i < arr.length; i++) { if(arr[i] == true) { return i+1; } } return -1; }转载请注明出处:http://blog.csdn.net/beiyeqingteng
相关文章推荐
- n 个人围成一圈(编号1-n),数到3的出列,最后剩下的人的编号
- 50个人围成一圈数数,数到3的人退出,求最后剩下的人的编号
- n个人排成一圈,从1到3报数,数到3的人出列,输出最后剩下的哪个人是原来的第几号
- 设有n个人依围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列, …,如此反复到所有的人全部出列为止。设n个人的编号分别为 1, 2, …, n,打印出出
- N个人围成一圈,顺序排号,报号出列。求最后出来及剩下的孩纸?
- 设有n个人依围成一圈,从第1个人开始报数,数到第m个人出 列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所 有的人全部出列为止。设n个人的编号分别为1,2,…,n,打印出出列的顺
- 多个人围成一圈报数,数到固定值的人出列,求最后剩下的人
- Java实现约瑟夫环:50个人围成一圈数数,数到3的人退出,求最后剩下的人的编号
- 有n个人围成一圈,从第1个人开始,1、2、3报数,报至3出局,余下的人继续从1、2、3报数,问:最后剩下的一人是原来的第几号?同时求出被淘汰编号的序列。(要求:用循环队列解决该问题。)
- * 假设有n个人围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m个人又出列..... * 如此反复到所有人全部出列为止。设n个人的编号分别为1,2,3..
- 由n个人做成一排,按顺时针由1开始编号。然后由第一个人开始报数,数到m的人出局。求最后剩下的人的编号。
- java 有n个人围成一圈,从第1个人开始,1、2、3报数,报至3出局,余下的人继续从1、2、3报数,问:最后剩下的一人是原来的第几号?同时求出被淘汰编号的序列
- js解决N个人围成一圈,第一个人从1开始报数,报到M的人出列,求最后一个出列的人的编号。
- 【算法】n个小孩围成一圈,数到5出列,求最后剩下的人
- n个人围成一圈,从第一个人开始123报数,报到3的离开,问最后剩下的人是第几个?
- 【算法】n个人围成一圈报数,报到3的退出,下面接着从1开始报,问最后剩下的是谁?
- 算法:N个人围成一个圈,逢3出列。求最后一人的编号。(约瑟夫环)
- N个人围成一圈报数,报到某一个数m的就出局,问你最后剩下来的人的号码?
- n个人围成一圈,数到三的人出局,问最后剩下的人是谁
- n个人,两成一个圈,编号从0到n-1 .从0开始数,遇到3或者3的倍数,那么就删除这个数,从下一个从新开始数,最后剩下的数的编号。