/**/ /* 数3退1 */ /** */ /*** n个人围成一圈,循环数数(1,2,3),当数到3时,此人退出,剩下的人继续* 当只剩下一个人时,请问该人在当初是第几个位置。*/ public class Count3Quit ... { public static void main(String[] args) ...{ /** *//** * 首先声明布尔类型的数组,设为true,表示在圈里 * 当为false时,表示此人不在圈里了 */ boolean[] arr = new boolean[2]; for (int i = 0; i < arr.length; i++) ...{ arr[i] = true; } //圈里还剩下的人数 int leftCount = arr.length; //数数1,2,3 int countNum = 0; //表示第几个位置 int index = 0; while (leftCount > 1) ...{ if (arr[index] == true) ...{ countNum++; if (countNum == 3) ...{ countNum = 0; arr[index] = false; leftCount--; } } index++; if (index == arr.length) ...{ index = 0; } } for (int i = 0; i < arr.length; i++) ...{ if (arr[i] == true) ...{ System.out.println(i); } } }}