原题链接:幸运儿
解题思路:
注意事项:
参考代码:
public class 幸运儿 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); while (in.hasNext()) { int n = in.nextInt(); int[] peoplesNum = new int[n]; int[] goOutNum = new int[n - 2]; for (int i = 0; i < peoplesNum.length; i++) { peoplesNum[i] = i + 1; } int j = 0; int k = 2; int countZero = 0; for (int i = 1; i < peoplesNum.length; i += k) { goOutNum[j++] = peoplesNum[i]; peoplesNum[i] = 0; countZero++; if ((i + k) > peoplesNum.length - 1) { if (countZero == (n - 2)) { break; } for (int z = 1; z < peoplesNum.length; z++) { if (peoplesNum[z] == 0) { continue; } else { k = k * 2; i = z - k; break; } } } } for (int i = 0; i < goOutNum.length; i++) { System.out.print(goOutNum[i] + " "); } System.out.println(); for(int i=0;i<peoplesNum.length;i++) { if(peoplesNum[i]!=0) { System.out.print(peoplesNum[i]+" "); } } System.out.println(); } } }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复