我不喜欢打针
【问题描述】
小朋友们排成一列纵队,从第一个人开始依次编号为 1~n。当队伍中至少还剩两个人时,出现了“逃跑行为" : 当第一个人进入医务室打针时,队伍中新的第一个人逃到了队伍的最后。请输入n ,并输出正确的打针顺序( 3≤n≤100 ) 。
【样例输入】
5
【样例输出】
1 3 5 4 2
#include<iostream> using namespace std; int que[100],front=0,rear=0; int push(int x){ que[rear]=x; int rs=que[rear]; rear++; return rs; } int pop(){ if(rear!=front){ return que[front++]; } } int quelen(){ return rear-front; } bool empty(){ return rear==front; } int main(){ int n; cin>>n; for(int i=1; i<=n; i++) { // 入队。 push(i); } while(!empty()){ cout<<pop()<<" "; if(quelen()>=2) push(pop()); } return 0; }

浙公网安备 33010602011771号