package com.knock.exercises; import java.util.Scanner; import org.junit.Test; /** * 练习:有N人围成一圈,顺序排号,从第一个人开始报数,(从一到三报),所有报三的人退出,问最后留下的是原来的第几号 * */ public class KaExercises { @Test public void test(){ Scanner scan = new Scanner(System.in); System.out.print("请输入:"); int n = scan.nextInt();//人数 int index = 0;//计数器 int k = n;//剩下的人数 boolean[] arr = new boolean[n]; for(int i=0; i<arr.length; i++){ arr[i] = true; } while(k>1){//当人数大于一时继续游戏 for(int i=0; i<arr.length; i++){ if(arr[i]==true){ index++; if(index==3){ arr[i]=false; k--; index=0; } } } } for(int i=0; i<arr.length; i++){ if(arr[i]==true){ System.out.println("最后留下的人是第"+i+"号"); } } } }