title:n孩子数数游戏date: 2020-12-21 10:22:12
tags: C++
categories: 编程练习
问题描述
n个孩子站成一圈,从第一个孩子开始顺时针方向报数,报到3的人出列,下一个人继续从1报数,直到最后剩下一个孩子为止。给出孩子的出列顺序
#include <iostream>#include <queue>#include <vector>using namespace std;int main(){int n;cin>>n;queue <int> Q;vector <int> visited;int count = 0;int i;for(i = 0;i <= n;i++) visited.push_back(0); //所有孩子均未出局while(1) //数数{for(i = 1;i <= n;i++){count++;if(visited.at(i) == 1) count--; //出局孩子数的数不算if(count == 3){count = 0;visited.at(i) = 1;Q.push(i); //孩子出局}}if(Q.size() == n) break; //所有孩子都出局,结束数数}while(!Q.empty()){cout<<Q.front()<<"==>";Q.pop();}return 0;}
