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