代码如下:
package tests;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 题目描述,
*Java 写有n个人围成一圈,顺序排号,从第一个人开始报数(从1~3报数),
*凡报到3的人退出圈子,问最后留下的人原来排在第几号。
*
*/
public class Countnumber {
public static void main(String[] args){
System.out.println("输入圈内报数的人数");
Scanner ss=new Scanner(System.in);
int n=ss.nextInt();
fun1(n);
// fun2(n);
}
//第一种方式
public static void fun1(int n){
int countnumber=0;//报数的数1-n
int index=0;//索引位置
int number=n;//报数人数
boolean [] arr=new boolean[n];
for(int i=0;i1){
if(arr[index]==true){
countnumber++;
if(countnumber==3){
arr[index]=false;
number--;
countnumber=0;
}
}
index++;
if(index==n){
index=0;
}
}
for(int i=0;i list=new ArrayList();
int countnumber=1;
for(int i=1;i<=n;i++){
list.add(i);
}
//进行列表遍历
for(int i=0;i
结果图如下: