编程题
### 问题描述 上体育课时,$n$ 个同学按顺序排成一排,初始时第 $i$ 个位置的同学,编号为 $i$ (从 $1$ 开始)。 老师下令:“单数同学出列!”,然后位置为单数的同学出列,剩下的同学重新按位置开始排列,编号不变。 老师又下令:“单数同学出列!”,新的单数位置的同学出列,剩下的同学继续重新按位置排列。 如此下去,最后只剩下一个人,他的编号是多少? ### 输入格式 输入仅一行,包含一个整数 $n$。 ### 输出格式 输出仅一行,包含一个整数,表示最后剩下的人的编号。 ### 样例输入 ```text 7 ``` ### 样例输出 ```text 4 ``` ### 说明 在样例中,初始队伍为:`1, 2, 3, 4, 5, 6, 7`。 第一次出列后,队伍变为:`2, 4, 6`。 第二次出列后,队伍变为:`4`。 队伍只剩最后一个人,编号为 `4`。 ### 评测数据规模 对于 $50$% 的评测数据,$1\leq n \leq 1\times 10^5$。 对于 $100$% 的评测数据,$1\leq n \leq 1\times 10^9$。
查看答案
赣ICP备20007335号-2