一道java编程题,急……

来源:百度知道 编辑:UC知道 时间:2024/06/05 22:06:46
* 、编号为1至n(3<n<30000)的n个人围成一圈。从1号开始顺次报数。报数时按1、2、3报数,报到3的人出列。问:最后留下的是几号?
输入数据:n
输出数据:最后留下的人的编号

谁可以帮忙解决 ,……
就是 我只允许它就123的这么赋值循环操作
但是i[j]= =3 的时候就让他踢出去,在后面的补充前面的在循环

import java.util.ArrayList;
import java.util.List;

public class Del3 {
public static void main(String[] args) {
int n = 21;
List<Integer> list = new ArrayList<Integer>();
for(int i=1;i<=n;i++){
if(i%3!=0){
list.add(i);
}
}
if(list.size()>0)
System.out.println(list.get(list.size()-1));
}

}

假设500个人,如果比500大,那就换数字呗,800,900,1000......

public class Count3Quit1 {
public static void main(String[] args) {
boolean[] b = new boolean[500];

for(int i=0;i<b.length;i++) {
b[i]=true;
}

int leftCount=b.length;
int counter=0;
int index=0;

while(leftCount>1) {
if(b[index]==true) {
counter++;
if(counter==3) {
counter=0;
b[index]=false;
leftCount--;
}
}