队列queue
#include<queue>
queue<int>q;//定义
q.push(i);//入队,接到队列末端
q.pop();//弹出队列第一个元素,不返回值
q.front();//返回队列第一个元素值
q.back();//返回队列最后一个元素值
q.empty();//队列为空,返回true
q.size();//队列元素个数
队列,栈与链表
链表可以访问首尾和中间元素,队列可以访问首尾,栈只能访问尾
MyAnswer
#include<iostream>
#include<queue>
using namespace std;
bool isOff(int a,int k)
{
if (a%k== 0 || a %10 == k)
return 1;
else
return 0;
}
int main()
{
int n, k;//n为小朋友数,k为指定数
cin >> n >> k;
queue<int> q;
for (int i = 1; i <= n; i++)
q.push(i);
int num = 1;
while (q.size() > 1)
{
int temp = q.front();//访问当前报数的编号
q.pop();//弹出当前报数的编号
if (isOff(num, k) == 0)//不被淘汰
q.push(temp);//接到队列尾
num++;
}
cout << q.front();
return 0;
}