King's Game

Accepts: 249
Submissions: 671
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
问题描述
为了铭记历史,国王准备在阅兵的间隙玩约瑟夫游戏。它召来了 $n(1\le n\le 5000)$ 个士兵,逆时针围成一个圈,依次标号 $1, 2, 3 ... n$。

第一轮第一个人从 $1$ 开始报数,报到 $1$ 就停止且报到 $1$ 的这个人出局。

第二轮从上一轮出局的人的下一个人开始从 $1$ 报数,报到 $2$ 就停止且报到 $2$ 的这个人出局。

第三轮从上一轮出局的人的下一个人开始从 $1$ 报数,报到 $3$ 就停止且报到 $3$ 的这个人出局。

第 $n - 1$ 轮从上一轮出局的人的下一个人开始从 $1$ 报数,报到 $n - 1$ 就停止且报到 $n - 1$ 的这个人出局。

最后剩余的人是幸存者,请问这个人的标号是多少?
输入描述
第一行一个整数表示测试组数:$T(0 < T\le5000)$ 。

每组数据占一行,包含一个整数 $n$,表示 $n$ 个人围成一圈。
输出描述
共 $T$ 行。对每组数据,输出幸存者的编号。
输入样例
2
2
3
输出样例
2
2
Hint
对于第一组数据,一开始报到 $1$ 的人即标号为 $1$ 的人退出,幸存者是 $2$ 号。

对于第二组数据,一开始报到 $1$ 的人即标号 $1$ 的人退出。接着 $2$ 号报 $1$,$3$ 号报 $2$,报到 $2$ 的人即 $3$ 号退出。幸存者是 $2$ 号。