有10個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是第幾號的人
只是用一個for完成
public class Test06 { public static void main(String[] args) { int[] arr={1,2,3,4,5,6,7,8,9,10}; int counter=0;//用於計算退出的人數 int j=0;//用於報數 /* arr[i%arr.length]可以用來表示數組成環時元素的定位 * j用於報數,和成環元素的定位下標無關 * */ for(int i=0;counter<arr.length-1;i++){ if(arr[i%arr.length]!=0){//元素不為0時,表明沒有退出 if((j+1)%3==0){//報數是3時 System.out.println("退出的人是:"+arr[i%arr.length]); arr[i%arr.length]=0;//元素置零表示退出 counter++; } j++;//只要沒有退出,報數就加1 } } for(int i=0;i<arr.length;i++){ if(arr[i]!=0){ System.out.println("最后剩下的人是:"+arr[i]+"號"); } } } }