一道算法题,求解呀
编程题:把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暑期实习##笔试题目#