#include #include

using namespace std;

int main() { int n; cin >> n; list lst; for(int i = 1; i <= n; i++) // 初始化编号 lst.push_back(i); auto it = lst.begin(); while(lst.size() > 1) { for(int i = 1; i <= 1; i++) // 报数,这里每次报1 { it++; if(it == lst.end()) // 报到末尾,重新从头开始报数 it = lst.begin(); } it = lst.erase(it); // 淘汰 if(it == lst.end()) // 淘汰的是最后一个,重新从头开始报数 it = lst.begin(); } cout << lst.front() << endl; // 输出最后的赢家 return 0;

报数游戏周末小李组织了一场同学聚会。有n个同学来参加在小李的提议下他们玩起了报数游戏。游戏规则如下:首先所有人按顺序编上序号。n个人就是对应1到n号。接着他们按顺序围坐成一圈从第1号同学开始按编号从小到大报数。需要注意的是当n号同学报完数。下一个报数的同学就是1号同学了。第一次报数到2为止。报到2的同学退出圈子。下一个同学再重新从1开始报数。第二次报数到3为止。报到3的同学退出圈子。下一个同学也重

原文地址: http://www.cveoy.top/t/topic/hpOX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录