public static void main(String[] args) { Scanner in = new Scanner(System.in); int m = in.nextInt(); if(m < 1 || m > 100) { System.out.println("ERROR!"); }else { ArrayList<Integer> list = new ArrayList<>(); for(int k = 1; k <= 100; k++) { list.add(k); } int i = 1; int j = m; while(list.size() >= m) { //i*m-1为不删除元素时的index //i-1为已删除的元素数量 //m-j为需要补足的数量,适用于循环时的偏移 int index=(i*m-1-(i-1)-(m-j)); if(index>=list.size()) { //超过list长度,计算需要补足的数量 j = (index+1)-list.size(); //去除补足数量对应的index list.remove(j-1); //i充置为1 i = 1; }else { list.remove(index); } i++; } System.out.println(list); } }
点赞 评论

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务