#6816. 小朋友排队离开
小朋友排队离开
小朋友排队离开
题目描述
学校组织了一次活动。
有 n 名小朋友从左到右站成一排,每个小朋友都有自己的编号:
1 2 3 ... n
活动开始后,老师每天都会进行一次点名离开操作。
每天操作规则如下:
- 从当前队伍的最左侧开始;
- 第 1 个小朋友离开;
- 跳过 2 个小朋友后,下一个小朋友离开;
- 按照相同规则继续,直到队伍扫描结束;
- 离开的小朋友不再回来;
- 剩余的小朋友保持原来的相对顺序,重新排成一队;
- 第二天继续执行相同操作。
例如:
当前队伍:
1 2 3 4 5 6 7 8
第一天离开:
1 4 7
剩余:
2 3 5 6 8
第二天继续从新的队伍开始。
现在请你计算:
编号为 k 的小朋友会在第几天离开。
输入格式
输入一行两个整数:
n k
其中:
n表示小朋友总人数;k表示需要查询的小朋友编号。
输出格式
输出一个整数:
day
表示编号为 k 的小朋友第几天离开。
数据范围
1 ≤ k ≤ n ≤ 10000
样例
输入
10 10
样例解释
初始队伍:
1 2 3 4 5 6 7 8 9 10
第一天
从第1个开始,每隔两个小朋友离开一个。
离开的编号:
1 4 7 10
因为10号小朋友是第10个位置:
1 2 3 4 5 6 7 8 9 10
↑ ↑ ↑ ↑
1 4 7 10
所以:
编号为10的小朋友在第1天离开。
输出:
1
样例2
输入
8 8
过程:
初始:
1 2 3 4 5 6 7 8
第一天:
离开:
1 4 7
剩余:
2 3 5 6 8
第二天:
当前队伍:
2 3 5 6 8
离开:
2 6
剩余:
3 5 8
第三天:
当前队伍:
3 5 8
离开:
3 8
所以:
8号小朋友第三天离开。
输出:
3
相关
在以下作业中: