64,636
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <list>
using namespace std;
int main(int argc, const char * argv[]) {
int cnt = 0, tmp;
list<int> l; //用list保存学生编号
for (int i=0; i<100; i++) {
l.push_back(i+1);
}
while (l.size()>0) { //如果学生圈里还有人则一直循环游戏
tmp = l.front(); //获得排在list的开头的学生编号
l.pop_front();//排在list的开头的学生站出来
cnt++; //报数
if (cnt%10==9 || cnt%100>=90 || cnt%1000>=900) { //如果报数中个十百位任意一位有9则站出来的学生从队列中则出局
printf("报数:%d,出局编号:%d\n", cnt, tmp);
} else {
l.push_back(tmp); //否则站出来的学生继续排在队列的最后
}
}
return 0;
}