description
某部隊進行新兵佇列訓練,將新兵從一開始按順序依次編號,並排成一行橫隊,訓練的規則如下:從頭開始一至二報數,凡報到二的出列,剩下的向小序號方向靠攏,再從頭開始進行一至三報數,凡報到三的出列,剩下的向小序號方向靠攏,繼續從頭開始進行一至二報數。。。,以後從頭開始輪流進行一至二報數、一至三報數直到剩下的人數不超過三人為止。
input
本題有多個測試資料組,第一行為組數n,接著為n行新兵人數,新兵人數不超過5000。
output
共有n行,分別對應輸入的新兵人數,每行輸出剩下的新兵最初的編號,編號之間有乙個空格。
sample input
2 20 40sample output
1 7 19 1 19 37方法一:
#include#includeusing namespace std;
void output(queueq);
void delete(queue&q)
while (q.size()>3)
q.pop();//報2的出列
flag = true;
}} if (count % 2 == 0)
q.push(i);//把報1的插到隊尾
q.pop();
int j = q.front();
//cout << j << endl;
if (q.front() == 1 && flag == true)
q.push(j);//報2的插到隊尾
q.pop();
if (q.front() == 1 && flag == true)
q.pop();//報3的出列
flag = true;
}} //output(q);
//cout << endl;
count++; }}
void output(queueq)
q.pop();
} cout << endl;
}int main()
delete(q);
output(q);
} return 0;
}
方法二:
// cpptest.cpp : 定義控制台應用程式的入口點
#include "stdafx.h"
#include#include#include#includeusing namespace std;
void pop(vectorv)
int main()
int m;
int count = 0;
while (true)
else
for (int i = 1; i < v.size(); i++)
}for (int i = 1; i < v.size(); i++)
}count++;
if (v.size() <= 4)
} for (int i = 1; i < v.size(); i++)
cout << endl;
v.clear();
} return 0;
}
資料結構之佇列應用例項
include stdafx.h include include include include typedef struct qnode qnode typedef struct qutype 顯示時間 void gettime 主頁面顯示 void dispwindow 釋放鏈隊 void de...
Python之棧和佇列的應用
插入操作都是限定在表的尾部 棧和佇列的管理模式是相同的 都可以通過順序結構和鏈式結構實現 棧 stack 只能在表的一端進行插入或刪除操作的限定表,即在表尾進行操作,用於表示式的轉換和求和,函式的遞迴和呼叫 函式入棧和出棧 佇列 queue 只能在表的一端進行插入,在表的另一端進行刪除的線性表,即在...
日誌系統之訊息佇列的應用
kakfa是由linkedin公司開發的乙個分布式的訊息系統,後成為apache頂級開源專案,它使用scala編寫,以可水平擴充套件和高吞吐率的特性而被廣泛使用。網路上很多關於kafka的使用場景描述,有對使用者延遲發簡訊的場景 活動追蹤 流資料處理 日誌處理等各種場景。在這麼多場景中,不一 一枚舉...