#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; }

报数游戏:找出最后的赢家 - C++ 实现

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

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