使用队列实现
int main(){
int n;
queue<int> queue;
cin >>n;
for (int i = 0; i < n; ++i) {
queue.push(i+1);
}
int i = 1;
while (queue.size() > 1){
int temp = queue.front();
queue.pop();
if(i % 3 != 0)
queue.push(temp);
i++;
}
cout << queue.front();
}
元素全部放进队列,一边出队一边开始计数,没到3时放回队尾,计到3时就把刚出队的元素丢了
登录后发布评论
暂无评论,来抢沙发