一个非常好的猴子选大王的写的代码。
一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王
public class Fun99 {public static void main(String[] args) {int n = 11;int[] arr = new int[n];for (int i = 0; i < arr.length; i++) {arr[i] = i + 1;}int current = 0;while (n != 1) {for (int i = 1; i <3 ; i++) {current += 1;current %= n;}System.out.print(arr[current]+" ");for (int i = current; i < n - 1; i++) {arr[i] = arr[i+1];}n--;}System.out.println("\n"+ arr[0]);}
}