1. 程式人生 > >噹噹筆試題(有n個人成一圈,順序排號(編號為1到n),從第一個人開始報數1到3報數),凡報到3的人出圈子,從下個人開始繼續報數,直到最後一個人,問最後留下在是第幾號?)

噹噹筆試題(有n個人成一圈,順序排號(編號為1到n),從第一個人開始報數1到3報數),凡報到3的人出圈子,從下個人開始繼續報數,直到最後一個人,問最後留下在是第幾號?)

-舉例
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