一道算法题,求解呀

编程题:把1,2,3,4,…,2020这2020个数均匀排成一个大圆圈, 从1开始数,第1个留着,接下来3个(2,3,  4)划掉, 第5个留着,接下来3个(6,7,8)划掉, 一直处理下去。 问:最后剩下哪个数?
 public static void main(String[] args){
        int leftnum = 0;
        LinkedList list = new LinkedList();
        for(int i = 1; i <= 20; i++ ){
            list.add(i);
        }

        while(list.size()>1){
            int count =0;
            for(int j = 0;j < list.size();j ++){
                leftnum++;
                if(leftnum == 4){
                    list.remove(j);
                    leftnum = 1;
                    if(j == list.size()||leftnum == 4){
                        leftnum = 0;
                    }
                    count++;

                }

            }


        }
        System.out.println(list);


  }
有哪位大牛能帮我在以上的代码上改一下,改成正确的。谢谢#阿里巴巴2021暑期实习##笔试题目#
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务