n 个人围成一圈(编号1-n),数到3的出列,最后剩下的人的编号

来源:互联网 发布:淘宝商城检测办理 编辑:程序博客网 时间:2024/05/04 12:52

问题:

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 == 3) {count = 0;arr[index] = false;left--;}}// we need to change the index if out of 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

原创粉丝点击