一共有n个人,编号为1,2......,n。从第一个人开始,把自己左手边的人给淘汰出局(就是二号),以此类推,最后剩编号为几的人?
通过二进制来看
int main(int argc, const char * argv[]) { int n; cin >>n; int x = n - (1<<(int)log2(n)); cout <<2 *x +1; return 0; }