噹噹筆試題(有n個人成一圈,順序排號(編號為1到n),從第一個人開始報數1到3報數),凡報到3的人出圈子,從下個人開始繼續報數,直到最後一個人,問最後留下在是第幾號?)
阿新 • • 發佈:2019-01-03
-舉例
12345678
第一次3走,第二次6走,第三次1走
import java.util.ArrayList;
import java.util.Scanner;
public class dangdang {
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
ArrayList< Integer > arr=new ArrayList<>();
System.out .println("輸入人的個數");
Scanner scanner=new Scanner(System.in);
int d=scanner.nextInt();
for(int a=1;a<=d;a++)
{
arr.add(a);
}
int i=-1,b=0; //i是索引,b計數
boolean flag=true;
while (flag) {
Thread.sleep(100);
i++;
b++;
if (b==3) {
System.out.println("移除的是"+arr.get(i));
arr.remove(i);
b=0;
i--;
}
if (i==(arr.size()-1)) {
i=-1;
}
if (arr.size()==1) {
flag=false;
System.out .println("最後一個"+arr.get(0));
}
}
}
}
結果
輸入人的個數
8
移除的是3
移除的是6
移除的是1
移除的是5
移除的是2
移除的是8
移除的是4
最後一個7