1. 程式人生 > >約瑟夫問題(Josephus Problem)

約瑟夫問題(Josephus Problem)

   public static void main(String[] args) {
         // TODO Auto-generated method stub
        List<String> list = new ArrayList<String>();
        for(int i = 1; i<= 41; i++){
            list.add(String.valueOf(i));
        }
        
        Scanner inputScanner = new Scanner(System.in);
        System.out.println("請輸入你要救的人數");
        int number = inputScanner.nextInt();
        
        int n = 1;
        while(list.size() >number ){
            
            for(int i = 0 ; i< list.size(); i++){
                if(n == 3){
                    list.set(i, "");
                    n = 1;
                }else{
                    n++;
                }
            }
            
            for(int j = list.size() - 1; j>= 0; j-- ){
                if(list.get(j).length() == 0){
                    list.remove(j);
                }
            }
        }
        
        System.out.println(list.toString());

    }