1. 有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最後留下的是原來第幾號的那位。 [分值:20]

1. 有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最後留下的是原來第幾號的那位。  [分值:20]

您的回答:(空)  (簡答題需要人工評分)

package com.interview;

import java.util.*;

/**
 * 量投科技
 * 面試題1:
 * 有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,
 * 問最後留下的是原來第幾號的那位
 */
public class Test1 {
    public static int result;

    public static void main(String[] args) {
        //得到一個數組,並且把數組按照順序排好 如1 2 3 4 5
        int[] n = new int[10];
        for (int i = 0; i < n.length; i++) {
            n[i] = i + 1;
        }
        //將數組中的數據放入到set集合中
        List<Integer> list = new ArrayList<>();
        for (int i : n) {
            list.add(i);
        }
        System.out.println(list);
        System.out.println("**************");
        int x = 1;
        int y = 0;
        while (list.size() != 1) {
            //關鍵點 x和y要同時變,一個變,另外一個也要跟着變
            if (y >= list.size()) {
                y = 0;
            }
            if (x >= 3) {
                list.remove(y);
                System.out.println(list);
                x = 1;

            } else {
                x++;
                y++;
            }
        }
        System.out.println("*********************");
        System.out.println(list);


    }

}

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章